diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c66ad55 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,154 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2017 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# EditorConfig configuration file (see ). + +# Indicate that this file is a root-level configuration file: +root = true + +# Set properties for all files: +[*] +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +# Set properties for JavaScript files: +[*.js] +indent_style = tab + +# Set properties for TypeScript files: +[*.ts] +indent_style = tab + +# Set properties for Python files: +[*.py] +indent_style = space +indent_size = 4 + +# Set properties for Julia files: +[*.jl] +indent_style = tab + +# Set properties for R files: +[*.R] +indent_style = tab + +# Set properties for C files: +[*.c] +indent_style = tab + +# Set properties for C header files: +[*.h] +indent_style = tab + +# Set properties for C++ files: +[*.cpp] +indent_style = tab + +# Set properties for C++ header files: +[*.hpp] +indent_style = tab + +# Set properties for Fortran files: +[*.f] +indent_style = space +indent_size = 2 +insert_final_newline = false + +# Set properties for shell files: +[*.sh] +indent_style = tab + +# Set properties for AWK files: +[*.awk] +indent_style = tab + +# Set properties for HTML files: +[*.html] +indent_style = tab +tab_width = 2 + +# Set properties for CSS files: +[*.css] +indent_style = tab + +# Set properties for Makefiles: +[Makefile] +indent_style = tab + +[*.mk] +indent_style = tab + +# Set properties for Markdown files: +[*.md] +indent_style = space +indent_size = 4 +trim_trailing_whitespace = false + +# Set properties for `usage.txt` files: +[usage.txt] +indent_style = space +indent_size = 2 + +# Set properties for `repl.txt` files: +[repl.txt] +indent_style = space +indent_size = 4 + +# Set properties for `package.json` files: +[package.json] +indent_style = space +indent_size = 2 + +# Set properties for `datapackage.json` files: +[datapackage.json] +indent_style = space +indent_size = 2 + +# Set properties for `tslint.json` files: +[tslint.json] +indent_style = space +indent_size = 2 + +# Set properties for `tsconfig.json` files: +[tsconfig.json] +indent_style = space +indent_size = 2 + +# Set properties for LaTeX files: +[*.tex] +indent_style = tab + +# Set properties for LaTeX Bibliography files: +[*.bib] +indent_style = tab + +# Set properties for YAML files: +[*.yml] +indent_style = space +indent_size = 2 + +# Set properties for GYP files: +[binding.gyp] +indent_style = space +indent_size = 2 + +[*.gypi] +indent_style = space +indent_size = 2 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..7212d81 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,33 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2017 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# Configuration file which assigns attributes to pathnames. +# +# [1]: https://git-scm.com/docs/gitattributes + +# Automatically normalize the line endings of any committed text files: +* text=auto + +# Override what is considered "vendored" by GitHub's linguist: +/deps/** linguist-vendored=false +/lib/node_modules/** linguist-vendored=false linguist-generated=false +test/fixtures/** linguist-vendored=false +tools/** linguist-vendored=false + +# Override what is considered "documentation" by GitHub's linguist: +examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..0fc831e --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,7 @@ + + +We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/stats/base/dists/erlang/logpdf) of the main repository where we’ll review and provide feedback. + +If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. + +We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml new file mode 100644 index 0000000..e51e34e --- /dev/null +++ b/.github/workflows/benchmark.yml @@ -0,0 +1,19 @@ +name: benchmark + +on: + workflow_dispatch: + +jobs: + benchmark: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 15 + - name: Install production and development dependencies + run: | + npm install + - name: Run benchmarks + run: | + npm run benchmark diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml new file mode 100644 index 0000000..60db7bf --- /dev/null +++ b/.github/workflows/close_pull_requests.yml @@ -0,0 +1,23 @@ +name: Close Pull Requests + +on: + pull_request_target: + types: [opened] + +jobs: + run: + runs-on: ubuntu-latest + steps: + - uses: superbrothers/close-pull-request@v3 + with: + comment: | + Thank you for submitting a pull request. :raised_hands: + + We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). + + We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/stats/base/dists/erlang/logpdf) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. + + Thank you again, and we look forward to receiving your contribution! :smiley: + + Best, + The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml new file mode 100644 index 0000000..0c19f10 --- /dev/null +++ b/.github/workflows/examples.yml @@ -0,0 +1,19 @@ +name: examples + +on: + workflow_dispatch: + +jobs: + examples: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 15 + - name: Install production and development dependencies + run: | + npm install + - name: Run examples + run: | + npm run examples diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..ae05f51 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,34 @@ +name: Publish Package + +on: push + +jobs: + publish: + runs-on: ubuntu-latest + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 15 + - name: Increment version + run: | + git config --local user.email "noreply@stdlib.io" + git config --local user.name "stdlib-bot" + npm version patch + - name: Publish package to npm + uses: JS-DevTools/npm-publish@v1 + with: + token: ${{ secrets.NPM_TOKEN }} + access: public + - name: Push changes + run: | + git push origin main + git push --tags + - uses: act10ns/slack@v1 + with: + status: ${{ job.status }} + steps: ${{ toJson(steps) }} + channel: '#npm-ci' + if: failure() diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..3c99108 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,29 @@ +name: build + +on: + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-latest + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 15 + - name: Install production and development dependencies + id: install + run: | + npm install + - name: Run tests + id: tests + run: | + npm test + - uses: act10ns/slack@v1 + with: + status: ${{ job.status }} + steps: ${{ toJson(steps) }} + channel: '#npm-ci' + if: failure() diff --git a/.github/workflows/test_coverage.yml b/.github/workflows/test_coverage.yml new file mode 100644 index 0000000..0e8045d --- /dev/null +++ b/.github/workflows/test_coverage.yml @@ -0,0 +1,24 @@ +name: coverage + +on: + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 15 + - name: Install production and development dependencies + run: | + npm install + - name: Calculate test coverage + run: | + npm run test-cov + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v1 + with: + directory: reports/coverage + flags: unittests diff --git a/.github/workflows/test_install.yml b/.github/workflows/test_install.yml new file mode 100644 index 0000000..ee70831 --- /dev/null +++ b/.github/workflows/test_install.yml @@ -0,0 +1,27 @@ +name: Test Installing Dependencies + +on: + workflow_run: + workflows: ["Publish Package"] + types: [completed] + +jobs: + on-success: + runs-on: ubuntu-latest + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + if: ${{ github.event.workflow_run.conclusion == 'success' }} + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 15 + - name: Install production dependencies via npm + run: | + npm install --only=prod + - uses: act10ns/slack@v1 + with: + status: ${{ job.status }} + steps: ${{ toJson(steps) }} + channel: '#npm-ci' + if: failure() diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1475963 --- /dev/null +++ b/.gitignore @@ -0,0 +1,181 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2017 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# Files # +######### +.postinstall.json + +# Directories # +############### +build/ +downloads/ +reports/ +tmp/ + +# Compiled source # +################### +*.com +*.class +*.dll +*.o +*.so +*.slo +*.lo +*.obj +*.dylib +*.lai +*.la +*.a +*.lib +*.ko +*.elf +*.node + +# Precompiled headers # +####################### +*.gch +*.pch + +# Executables # +############### +*.exe +*.out +*.app + +# Packages # +############ +# It is better to unpack these files and commit the raw source +# git has its own built in compression methods +*.7z +*.dmg +*.gz +*.iso +*.jar +*.rar +*.tar +*.zip + +# Make an exception for compressed distributable files: +!dist/*.gz + +# Logs and databases # +###################### +*.log +*.sql +*.sqlite + +# OS generated files # +###################### +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +Icon? +ehthumbs.db +Thumbs.db +Desktop.ini + +# Temporary files # +################### +*~ + +# Node.js # +########### +/node_modules/ +lib/node_modules/**/node_modules/ +docs/**/node_modules/ +pids +*.pid +*.seed + +# Typescript # +############## +*.tsbuildinfo +lib/node_modules/**/tsconfig.json +lib/node_modules/**/tslint.json + +# Matlab # +########## +*.asv +*.mex* + +# Fortran # +########### +*.mod + +# R # +##### +.Rhistory +.Rapp.history +.Rproj.user/ + +# Python # +########## +__pycache__/ +*.py[cod] +*$py.class +*.egg-info/ + +# TeX # +####### +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.dvi +*-converted-to.* +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.brf +*.run.xml +*.fdb_latexmk +*.synctex +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync +*.alg +*.loa +acs-*.bib +*.thm +*.nav +*.snm +*.vrb +*.acn +*.acr +*.glg +*.glo +*.gls +*-concordance.tex +*.tikz +*-tikzDictionary +*.idx +*.ilg +*.ind +*.ist + +# Visual Studio # +################# +.vscode/ +jsconfig.json diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..401aa76 --- /dev/null +++ b/.npmignore @@ -0,0 +1,225 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2017 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# Files # +######### +CODE_OF_CONDUCT.md +CONTRIBUTING.md +CONTRIBUTORS +TODO.md +ROADMAP.md +.postinstall.json + +# Directories # +############### +.circleci/ +.github/ +**/benchmark/ +**/build/ +**/examples/ +reports/ +support/ +**/tmp/ +workshops/ + +# Ignore test directories, except for testing dependency installation: +**/test/ +!/deps/test/ + +# Only top-level directories: +/etc/ +/docs/ + +# Compiled source # +################### +*.com +*.class +*.dll +*.o +*.so +*.slo +*.lo +*.obj +*.dylib +*.lai +*.la +*.a +*.lib +*.ko +*.elf +*.node + +# Precompiled headers # +####################### +*.gch +*.pch + +# Executables # +############### +*.exe +*.out +*.app + +# Packages # +############ +*.7z +*.dmg +*.gz +*.iso +*.jar +*.rar +*.tar +*.zip + +# Make an exception for compressed distributable files: +!dist/*.gz + +# Logs and databases # +###################### +*.log +*.sql +*.sqlite + +# OS generated files # +###################### +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +Icon? +ehthumbs.db +Thumbs.db +Desktop.ini + +# Temporary files # +################### +*~ + +# Node.js # +########### +.npmignore + +# Only top-level node_modules: +/node_modules/ + +# TypeScript # +############## +tsconfig.json +tslint.json +*.tsbuildinfo + +# Matlab # +########## +*.asv +*.mex* + +# Fortran # +########### +*.mod + +# R # +##### +.Rhistory +.Rapp.history +.Rproj.user/ + +# Python # +########## +__pycache__/ +*.py[cod] +*$py.class +*.egg-info/ +.ipynb_checkpoints +setup.cfg +setup.py + +# TeX # +####### +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.dvi +*-converted-to.* +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.brf +*.run.xml +*.fdb_latexmk +*.synctex +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync +*.alg +*.loa +acs-*.bib +*.thm +*.nav +*.snm +*.vrb +*.acn +*.acr +*.glg +*.glo +*.gls +*-concordance.tex +*.tikz +*-tikzDictionary +*.idx +*.ilg +*.ind +*.ist + +# Git # +####### +.git* +.mailmap + +# Visual Studio # +################# +.vscode/ +jsconfig.json + +# Utilities # +############# +.jshintrc +.jshintignore +.eslintrc* +.eslintignore + +.pylintrc +.pycodestyle +.pydocstyle + +.travis.yml +circle.yml +appveyor.yml +azure-pipelines.yml + +.editorconfig +.codeclimate.yml +.codecov.yml + +.rtlintrc diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..36f5bef --- /dev/null +++ b/.npmrc @@ -0,0 +1,28 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2017 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# Configuration for [npm][1]. +# +# [1]: https://docs.npmjs.com/files/npmrc + +# Disable the creation of a lock file: +package-lock = false +shrinkwrap = false + +# Disable automatically "saving" dependencies on install: +save = false diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..35b70c9 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,3 @@ +# Code of Conduct + +stdlib expects community participants to adhere to the project Code of Conduct. The [full text](https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md) is available in the main project repository. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..5f59443 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,3 @@ +# Contribution Guidelines + +Woot woot! If you are new to stdlib, welcome! And thanks for your interest! Guidelines for how to contribute to the project are [available](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) in the main project repository. diff --git a/CONTRIBUTORS b/CONTRIBUTORS new file mode 100644 index 0000000..da469e5 --- /dev/null +++ b/CONTRIBUTORS @@ -0,0 +1,24 @@ +# This file is generated by tools/scripts/update_contributors. +# +# Contributors listed in alphabetical order. + +Athan Reines +Brendan Graetz +Bruno Fenzl +Christopher Dambamuromo +Dominik Moritz +Frank Kovacs +James +Jithin KS +Joey Reed +Joris Labie +Justin Dennison +Marcus +Matt Cochrane +Milan Raj +Ognjen Jevremović +Philipp Burckhardt +Ricky Reusser +Ryan Seal +Shraddheya Shendre +rei2hu diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..fcc9934 --- /dev/null +++ b/LICENSE @@ -0,0 +1,481 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by this +license (the "Software") to use, reproduce, display, distribute, execute, and +transmit the Software, and to prepare derivative works of the Software, and to +permit third-parties to whom the Software is furnished to do so, all subject to +the following: + +The copyright notices in the Software and this entire statement, including the +above license grant, this restriction and the following disclaimer, must be +included in all copies of the Software, in whole or in part, and all derivative +works of the Software, unless such copies or derivative works are solely in the +form of machine-executable object code generated by a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE +COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES +OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + +DEPENDENCIES + +The library links against the following external libraries, which have their own +licenses: + +* OpenBLAS + +Copyright (c) 2011-2014, The OpenBLAS Project +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + 3. Neither the name of the OpenBLAS project nor the names of + its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +* Electron + +Copyright (c) 2013-2017 GitHub Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +* Boost + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + + +* Cephes + +Copyright (c) 1984-2000 Stephen L. Moshier + +Some software in this archive may be from the book _Methods and Programs for +Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) +or from the Cephes Mathematical Library, a commercial product. In either event, +it is copyrighted by the author. What you see here may be used freely but it +comes with no support or guarantee. + +Stephen L. Moshier +moshier@na-net.ornl.gov + + + +ATTRIBUTION + +The library contains implementations from the following external libraries, +which have their own licenses: + +* FreeBSD + +Copyright (C) 1993-2004 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunPro, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + + +* FDLIBM + +Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunPro, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + + +* Go + +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +* SLATEC Common Mathematical Library + +Public domain. + + +* ESLint + +Copyright JS Foundation and other contributors, https://js.foundation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +* StatsFuns.jl + +Copyright (c) 2015: Dahua Lin. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +* SpecialFunctions.jl + +The MIT License (MIT) + +Copyright (c) 2017 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and others: + +https://github.com/JuliaMath/SpecialFunctions.jl/graphs/contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +* MT19937 + +Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. The names of its contributors may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1c7d53e --- /dev/null +++ b/Makefile @@ -0,0 +1,534 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2021 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# USER VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Indicate whether to "fast" fail when linting, running tests, etc: +ifndef FAST_FAIL + FAIL_FAST := true +else +ifeq ($(FAST_FAIL), 0) + FAIL_FAST := false +else + FAIL_FAST := true +endif +endif + +# Define the `NODE_PATH` environment variable: +NODE_PATH ?= + +# Define the `NODE_ENV` environment variable: +NODE_ENV ?= + + +# INTERNAL VARIABLES # + +# Instruct make to warn us when we use an undefined variable (e.g., misspellings). +MAKEFLAGS += --warn-undefined-variables + +# Define the default target: +.DEFAULT_GOAL := all + +# Define the `SHELL` variable to avoid issues on systems where the variable may be inherited from the environment. +# +# ## Notes +# +# - We use `bash` so that we can use `pipefail`. +# +# +# [1]: https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html#Makefile-Basics +# [2]: http://clarkgrubb.com/makefile-style-guide +SHELL := bash + +# Define shell flags. +# +# ## Notes +# +# - `.SHELLFLAGS` was introduced in GNU Make 3.82 and has no effect on the version of GNU Make installed on Mac OS X, which is 3.81. +# - The `-e` flag causes `bash` to exit immediately if a `bash` executed command fails. +# - The `-u` flag causes `bash` to exit with an error message if a variable is accessed without being defined. +# - The `pipefail` option specifies that, if any of the commands in a pipeline fail, the entire pipeline fails. Otherwise the return value of a pipeline is the return value of the last command. +# - The `-c` flag is in the default value of `.SHELLFLAGS`, which must be preserved, as this is how `make` passes the script to be executed to `bash`. +# +.SHELLFLAGS := -eu -o pipefail -c + +# Remove targets if its recipe fails. +# +# ## Notes +# +# - Mentioning this target anywhere in a Makefile prevents a user from re-running make and using an incomplete or invalid target. +# - When debugging, it may be necessary to comment this line out so the incomplete or invalid target can be inspected. +# +# [1]: https://www.gnu.org/software/make/manual/html_node/Special-Targets.html +.DELETE_ON_ERROR: + +# Remove all the default suffixes, preferring to define all rules explicitly. +# +# [1]: https://www.gnu.org/software/make/manual/html_node/Suffix-Rules.html#Suffix-Rules +# [2]: https://www.gnu.org/software/make/manual/html_node/Suffix-Rules.html#Suffix-Rules +.SUFFIXES: + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Determine the filename: +this_file := $(lastword $(MAKEFILE_LIST)) + +# Determine the absolute path of the Makefile (see http://blog.jgc.org/2007/01/what-makefile-am-i-in.html): +this_dir := $(dir $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) + +# Remove the trailing slash: +this_dir := $(patsubst %/,%,$(this_dir)) + +# Determine root directory: +ROOT_DIR = $(this_dir) + +# Define the root build directory: +BUILD_DIR ?= $(ROOT_DIR)/build + +# Define the root directory for storing distributable files: +DIST_DIR ?= $(ROOT_DIR)/dist + +# Define the root directory for storing temporary files: +TMP_DIR ?= $(ROOT_DIR)/tmp + +# Define the directories for writing reports, including code coverage: +REPORTS_DIR ?= $(ROOT_DIR)/reports +COVERAGE_DIR ?= $(REPORTS_DIR)/coverage + +# Define the top-level directory containing node module dependencies: +NODE_MODULES ?= $(ROOT_DIR)/node_modules + +# Define the top-level directory containing node module executables: +BIN_DIR ?= $(NODE_MODULES)/.bin + +# Define the path to the root `package.json`: +ROOT_PACKAGE_JSON ?= $(ROOT_DIR)/package.json + +# Define the folder name convention for source files requiring compilation: +SRC_FOLDER ?= src + +# Define the folder name convention for documentation files: +DOCUMENTATION_FOLDER ?= docs + +# Define the folder name convention for configuration files: +CONFIG_FOLDER ?= etc + +# Define the folder name convention for benchmark files: +BENCHMARKS_FOLDER ?= benchmark + +# Define the folder name convention for benchmark fixtures: +BENCHMARKS_FIXTURES_FOLDER ?= $(BENCHMARKS_FOLDER)/fixtures + +# Define the folder name convention for examples files: +EXAMPLES_FOLDER ?= examples + +# Define the folder name convention for examples fixtures: +EXAMPLES_FIXTURES_FOLDER ?= $(EXAMPLES_FOLDER)/fixtures + +# Define the folder name convention for test files: +TESTS_FOLDER ?= test + +# Define the folder name convention for test fixtures: +TESTS_FIXTURES_FOLDER ?= $(TESTS_FOLDER)/fixtures + +# Define a filepath pattern for benchmark files: +BENCHMARKS_FILTER ?= .*/.* + +# Define a filepath pattern for example files: +EXAMPLES_FILTER ?= .*/.* + +# Define a filepath pattern for test files: +TESTS_FILTER ?= .*/.* + +# Define a filename pattern for benchmark files: +BENCHMARKS_PATTERN ?= benchmark*.js + +# Define a filename pattern for example files: +EXAMPLES_PATTERN ?= *.js + +# Define a filename pattern for test files: +TESTS_PATTERN ?= test*.js + +# Define Node environments: +ifdef NODE_ENV + NODE_ENV_BENCHMARK := $(NODE_ENV) + NODE_ENV_EXAMPLES := $(NODE_ENV) + NODE_ENV_TEST := $(NODE_ENV) +else + NODE_ENV ?= + NODE_ENV_BENCHMARK ?= benchmark + NODE_ENV_EXAMPLES ?= examples + NODE_ENV_TEST ?= test +endif + +# Define whether delete operations should be safe (i.e., deleted items are sent to trash, rather than permanently deleted): +SAFE_DELETE ?= false + +# Define the delete command: +ifeq ($(SAFE_DELETE), true) + # FIXME: -rm -rf + DELETE := -rm + DELETE_FLAGS := -rf +else + DELETE ?= -rm + DELETE_FLAGS ?= -rf +endif + +# Determine the `open` command: +ifeq ($(OS), Darwin) + OPEN ?= open +else + OPEN ?= xdg-open +endif +# TODO: add Windows command + +# Define the command for `node`: +NODE ?= node + +# Define the command for `npm`: +NPM ?= npm + +# Define the path to a JavaScript test runner. +# +# ## Notes +# +# - We reference the `bin` file directly in order to support using `istanbul` for code coverage on Windows (https://github.com/gotwarlost/istanbul#usage-on-windows) +JAVASCRIPT_TEST ?= $(NODE_MODULES)/tape/bin/tape + +# Define any command-line options to use when invoking the test runner: +JAVASCRIPT_TEST_FLAGS ?= + +# Define the path to the executable for parsing TAP output: +TAP_REPORTER ?= $(BIN_DIR)/tap-spec + +# Define the path to the Istanbul executable: +ISTANBUL ?= $(BIN_DIR)/istanbul + +# Define which files and directories to exclude from coverage instrumentation: +ISTANBUL_EXCLUDES_FLAGS ?= \ + --no-default-excludes \ + -x 'node_modules/**' \ + -x 'reports/**' \ + -x 'tmp/**' \ + -x 'deps/**' \ + -x 'dist/**' \ + -x "**/$(SRC_FOLDER)/**" \ + -x "**/$(TESTS_FOLDER)/**" \ + -x "**/$(EXAMPLES_FOLDER)/**" \ + -x "**/$(BENCHMARKS_FOLDER)/**" \ + -x "**/$(CONFIG_FOLDER)/**" \ + -x "**/$(DOCUMENTATION_FOLDER)/**" + +# Define the command to generate test coverage: +ISTANBUL_COVER ?= $(ISTANBUL) cover + +# Define the type of report Istanbul should produce: +ISTANBUL_COVER_REPORT_FORMAT ?= lcov + +# Define the command-line options to be used when generating code coverage: +ISTANBUL_COVER_FLAGS ?= \ + $(ISTANBUL_EXCLUDES_FLAGS) \ + --dir $(COVERAGE_DIR) \ + --report $(ISTANBUL_COVER_REPORT_FORMAT) + +# On Mac OSX, in order to use `|` and other regular expression operators, we need to use enhanced regular expression syntax (-E); see https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man7/re_format.7.html#//apple_ref/doc/man/7/re_format. +ifeq ($(OS), Darwin) + find_kernel_prefix := -E +else + find_kernel_prefix := +endif + +# Common exclude flags that most recipes for finding package files should use (Note: order does matter to some degree): +FIND_COMMON_EXCLUDE_FLAGS ?= \ + -not -path "$(ROOT_DIR)/.*" \ + -not -path "$(NODE_MODULES)/*" \ + -not -path "$(BUILD_DIR)/*" \ + -not -path "$(REPORTS_DIR)/*" \ + +# Define exclusion flags to use when searching for benchmark files: +FIND_BENCHMARKS_EXCLUDE_FLAGS ?= \ + $(FIND_COMMON_EXCLUDE_FLAGS) \ + -not -path "$(ROOT_DIR)/**/$(BENCHMARKS_FIXTURES_FOLDER)/*" + +# Define flags for finding benchmark files: +FIND_BENCHMARKS_FLAGS ?= \ + -type f \ + -name "$(BENCHMARKS_PATTERN)" \ + -path "$(ROOT_DIR)/**/$(BENCHMARKS_FOLDER)/**" \ + -regex "$(BENCHMARKS_FILTER)" \ + $(FIND_BENCHMARKS_EXCLUDE_FLAGS) + +ifneq ($(OS), Darwin) + FIND_BENCHMARKS_FLAGS := -regextype posix-extended $(FIND_BENCHMARKS_FLAGS) +endif + +# Define a command to list benchmark files: +FIND_BENCHMARKS_CMD ?= find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_BENCHMARKS_FLAGS) + +# Define exclusion flags to use when searching for examples files: +FIND_EXAMPLES_EXCLUDE_FLAGS ?= \ + $(FIND_COMMON_EXCLUDE_FLAGS) \ + -not -path "$(ROOT_DIR)/**/$(EXAMPLES_FIXTURES_FOLDER)/*" + +# Define flags for finding examples files: +FIND_EXAMPLES_FLAGS ?= \ + -type f \ + -name "$(EXAMPLES_PATTERN)" \ + -path "$(ROOT_DIR)/**/$(EXAMPLES_FOLDER)/**" \ + -regex "$(EXAMPLES_FILTER)" \ + $(FIND_EXAMPLES_EXCLUDE_FLAGS) + +ifneq ($(OS), Darwin) + FIND_EXAMPLES_FLAGS := -regextype posix-extended $(FIND_EXAMPLES_FLAGS) +endif + +# Define a command to list example files: +FIND_EXAMPLES_CMD ?= find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_EXAMPLES_FLAGS) + +# Define exclusion flags to use when searching for test files: +FIND_TESTS_EXCLUDE_FLAGS ?= \ + $(FIND_COMMON_EXCLUDE_FLAGS) \ + -not -path "$(ROOT_DIR)/**/$(TESTS_FIXTURES_FOLDER)/*" + +# Define flags for finding test files: +FIND_TESTS_FLAGS ?= \ + -type f \ + -name "$(TESTS_PATTERN)" \ + -regex "$(TESTS_FILTER)" \ + $(FIND_TESTS_EXCLUDE_FLAGS) + +ifneq ($(OS), Darwin) + FIND_TESTS_FLAGS := -regextype posix-extended $(FIND_TESTS_FLAGS) +endif + +# Define a command to list test files: +FIND_TESTS_CMD ?= find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_TESTS_FLAGS) + + +# RULES # + +#/ +# Default target. +# +# @example +# make +# +# @example +# make all +#/ +all: help + +.PHONY: all + +#/ +# Prints a `Makefile` help message. +# +# @example +# make help +#/ +help: + $(QUIET) echo 'Read the Makefile to see the list of available commands.' + $(QUIET) echo '' + +.PHONY: help + +#/ +# Prints the runtime value of a `Makefile` variable. +# +# ## Notes +# +# - The rule uses the following format: +# +# ```bash +# $ make inspect. +# ``` +# +# @example +# make inspect.ROOT_DIR +# +# @example +# make inspect.CC +#/ +inspect.%: + $(QUIET) echo '$*=$($*)' + +#/ +# Runs the project's install sequence. +# +# @example +# make install +#/ +install: + $(NPM) install + +.PHONY: install + +#/ +# Removes node module dependencies. +# +# @example +# make clean-node +#/ +clean-node: + $(QUIET) $(DELETE) $(DELETE_FLAGS) $(NODE_MODULES) + +#/ +# Runs the project's cleanup sequence. +# +# @example +# make clean +#/ +clean: clean-node clean-cov + $(QUIET) $(DELETE) $(DELETE_FLAGS) $(BUILD_DIR) + $(QUIET) $(DELETE) $(DELETE_FLAGS) $(REPORTS_DIR) + +.PHONY: clean + +#/ +# Runs JavaScript benchmarks consecutively. +# +# ## Notes +# +# - The recipe assumes that benchmark files can be run via Node.js. +# - This rule is useful when wanting to glob for JavaScript benchmark files (e.g., run all JavaScript benchmarks for a particular package). +# +# +# @param {string} [BENCHMARKS_FILTER] - file path pattern (e.g., `.*/utils/group-by/.*`) +# +# @example +# make benchmark +# +# @example +# make benchmark BENCHMARKS_FILTER=".*/utils/group-by/.*" +#/ +benchmark: $(NODE_MODULES) + $(QUIET) $(FIND_BENCHMARKS_CMD) | grep '^[\/]\|^[a-zA-Z]:[/\]' | while read -r file; do \ + echo ""; \ + echo "Running benchmark: $$file"; \ + NODE_ENV="$(NODE_ENV_BENCHMARK)" \ + NODE_PATH="$(NODE_PATH)" \ + $(NODE) $$file || exit 1; \ + done + +.PHONY: benchmark + +#/ +# Runs JavaScript examples consecutively. +# +# ## Notes +# +# - This rule is useful when wanting to glob for JavaScript examples files (e.g., run all JavaScript examples for a particular package). +# - This rule **assumes** that examples files can be run using Node.js. +# +# +# @param {string} [EXAMPLES_FILTER] - file path pattern (e.g., `.*/math/base/special/abs/.*`) +# +# @example +# make examples +# +# @example +# make examples EXAMPLES_FILTER=".*/strided/common/.*" +#/ +examples: $(NODE_MODULES) + $(QUIET) $(FIND_EXAMPLES_CMD) | grep '^[\/]\|^[a-zA-Z]:[/\]' | while read -r file; do \ + echo ""; \ + echo "Running example: $$file"; \ + NODE_ENV="$(NODE_ENV_EXAMPLES)" \ + NODE_PATH="$(NODE_PATH)" \ + $(NODE) $$file || exit 1; \ + done + +.PHONY: examples + +#/ +# Runs JavaScript tests consecutively. +# +# ## Notes +# +# - This rule is useful when wanting to glob for JavaScript test files (e.g., run all JavaScript tests for a particular package). +# - This rule **assumes** that test files can be run using Node.js. +# +# +# @param {string} [TEST_FILTER] - file path pattern (e.g., `.*/math/base/special/abs/.*`) +# +# @example +# make test +# +# @example +# make test TESTS_FILTER=".*/strided/common/.*" +#/ +test: $(NODE_MODULES) + $(QUIET) $(FIND_TESTS_CMD) | grep '^[\/]\|^[a-zA-Z]:[/\]' | while read -r test; do \ + echo ''; \ + echo "Running test: $$test"; \ + NODE_ENV="$(NODE_ENV_TEST)" \ + NODE_PATH="$(NODE_PATH)" \ + $(JAVASCRIPT_TEST) \ + $(JAVASCRIPT_TEST_FLAGS) \ + $$test \ + | $(TAP_REPORTER) || exit 1; \ + done + +.PHONY: test + +#/ +# Runs unit tests and generate a test coverage report. +# +# @example +# make test-cov +#/ +test-cov: clean-cov + $(QUIET) NODE_ENV="$(NODE_ENV_TEST)" \ + NODE_PATH="$(NODE_PATH)" \ + $(ISTANBUL_COVER) $(ISTANBUL_COVER_FLAGS) $(JAVASCRIPT_TEST) -- $$( $(FIND_TESTS_CMD) ) + +.PHONY: test-cov + +#/ +# Removes a test coverage directory. +# +# @example +# make clean-cov +#/ +clean-cov: + $(QUIET) $(DELETE) $(DELETE_FLAGS) $(COVERAGE_DIR) diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..f5374f6 --- /dev/null +++ b/NOTICE @@ -0,0 +1 @@ +Copyright (c) 2016-2021 The Stdlib Authors. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e8f79ac --- /dev/null +++ b/README.md @@ -0,0 +1,226 @@ + + +# Logarithm of Probability Density Function + +[![NPM version][npm-image]][npm-url] [![Build Status][test-image]][test-url] [![Coverage Status][coverage-image]][coverage-url] [![dependencies][dependencies-image]][dependencies-url] + +> Evaluate the natural logarithm of the probability density function (PDF) for an [Erlang][erlang-distribution] distribution. + +
+ +The [probability density function][pdf] (PDF) for an [Erlang][erlang-distribution] random variable is + + + +
+ Probability density function (PDF) for an Erlang distribution. +
+
+ + + +where `k` is the shape parameter and `lambda` is the rate parameter. + +
+ + + +
+ +## Installation + +```bash +npm install @stdlib/stats-base-dists-erlang-logpdf +``` + +
+ +
+ +## Usage + +```javascript +var logpdf = require( '@stdlib/stats-base-dists-erlang-logpdf' ); +``` + +#### logpdf( x, k, lambda ) + +Evaluates the natural logarithm of the [probability density function][pdf] (PDF) for an [Erlang][erlang-distribution] distribution with parameters `k` (shape parameter) and `lambda` (rate parameter). + +```javascript +var y = logpdf( 0.1, 1, 1.0 ); +// returns ~-0.1 + +y = logpdf( 0.5, 2, 2.5 ); +// returns ~-0.111 + +y = logpdf( -1.0, 4, 2.0 ); +// returns -Infinity +``` + +If provided `NaN` as any argument, the function returns `NaN`. + +```javascript +var y = logpdf( NaN, 1, 1.0 ); +// returns NaN + +y = logpdf( 0.0, NaN, 1.0 ); +// returns NaN + +y = logpdf( 0.0, 1, NaN ); +// returns NaN +``` + +If not provided a nonnegative integer for `k`, the function returns `NaN`. + +```javascript +var y = logpdf( 2.0, -2, 0.5 ); +// returns NaN + +y = logpdf( 2.0, 0.5, 0.5 ); +// returns NaN +``` + +If provided `k = 0`, the function evaluates the logarithm of the [PDF][pdf] of a [degenerate distribution][degenerate-distribution] centered at `0`. + +```javascript +var y = logpdf( 2.0, 0.0, 2.0 ); +// returns -Infinity + +y = logpdf( 0.0, 0.0, 2.0 ); +// returns Infinity +``` + +If provided `lambda <= 0`, the function returns `NaN`. + +```javascript +var y = logpdf( 2.0, 1, 0.0 ); +// returns NaN + +y = logpdf( 2.0, 1, -1.0 ); +// returns NaN +``` + +#### logpdf.factory( k, lambda ) + +Returns a `function` for evaluating the [PDF][pdf] for an [Erlang][erlang-distribution] distribution with parameters `k` (shape parameter) and `lambda` (rate parameter). + +```javascript +var mylogpdf = logpdf.factory( 3, 1.5 ); + +var y = mylogpdf( 1.0 ); +// returns ~-0.977 + +y = mylogpdf( 4.0 ); +// returns ~-2.704 +``` + +
+ + + +
+ +## Examples + + + +```javascript +var randu = require( '@stdlib/random-base-randu' ); +var round = require( '@stdlib/math-base-special-round' ); +var logpdf = require( '@stdlib/stats-base-dists-erlang-logpdf' ); + +var lambda; +var k; +var x; +var y; +var i; + +for ( i = 0; i < 20; i++ ) { + x = randu() * 10.0; + k = round( randu() * 10.0 ); + lambda = randu() * 5.0; + y = logpdf( x, k, lambda ); + console.log( 'x: %d, k: %d, λ: %d, ln(f(x;k,λ)): %d', x.toFixed( 4 ), k, lambda.toFixed( 4 ), y.toFixed( 4 ) ); +} +``` + +
+ + + + +
+ +* * * + +## Notice + +This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. + +For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. + +--- + +## License + +See [LICENSE][stdlib-license]. + + +## Copyright + +Copyright © 2016-2021. The Stdlib [Authors][stdlib-authors]. + +
+ + + + + + + + diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js new file mode 100644 index 0000000..ddc824e --- /dev/null +++ b/benchmark/benchmark.js @@ -0,0 +1,85 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var ceil = require( '@stdlib/math-base-special-ceil' ); +var randu = require( '@stdlib/random-base-randu' ); +var isnan = require( '@stdlib/math-base-assert-is-nan' ); +var EPS = require( '@stdlib/constants-float64-eps' ); +var pkg = require( './../package.json' ).name; +var logpdf = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var lambda; + var k; + var x; + var y; + var i; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + x = ceil( randu()*100.0 ); + k = ceil( randu()*100.0 ); + lambda = ( randu()*20.0 ) + EPS; + y = logpdf( x, k, lambda ); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); + +bench( pkg+':factory', function benchmark( b ) { + var mylogpdf; + var lambda; + var k; + var x; + var y; + var i; + + k = 2.0; + lambda = 1.5; + mylogpdf = logpdf.factory( k, lambda ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + x = ( randu()*50.0 ) + EPS; + y = mylogpdf( x ); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/docs/img/equation_erlang_pdf.svg b/docs/img/equation_erlang_pdf.svg new file mode 100644 index 0000000..27103fb --- /dev/null +++ b/docs/img/equation_erlang_pdf.svg @@ -0,0 +1,70 @@ + +f left-parenthesis x semicolon k comma lamda right-parenthesis equals StartFraction lamda Superscript k Baseline x Superscript k minus 1 Baseline e Superscript minus lamda x Baseline Over left-parenthesis k minus 1 right-parenthesis factorial EndFraction 1 left-parenthesis x greater-than-or-equal-to 0 right-parenthesis + + + \ No newline at end of file diff --git a/docs/repl.txt b/docs/repl.txt new file mode 100644 index 0000000..50caf29 --- /dev/null +++ b/docs/repl.txt @@ -0,0 +1,84 @@ + +{{alias}}( x, k, λ ) + Evaluates the natural logarithm of the probability density function (PDF) + for an Erlang distribution with shape parameter `k` and rate parameter `λ` + at a value `x`. + + If provided `NaN` as any argument, the function returns `NaN`. + + If not provided a nonnegative integer for `k`, the function returns `NaN`. + + If provided a non-positive value for `λ`, the function returns `NaN`. + + Parameters + ---------- + x: number + Input value. + + k: number + Shape parameter. + + λ: number + Rate parameter. + + Returns + ------- + out: number + Evaluated logPDF. + + Examples + -------- + > var y = {{alias}}( 0.1, 1, 1.0 ) + ~-0.1 + > y = {{alias}}( 0.5, 2, 2.5 ) + ~-0.111 + > y = {{alias}}( -1.0, 4, 2.0 ) + -Infinity + > y = {{alias}}( NaN, 1, 1.0 ) + NaN + > y = {{alias}}( 0.0, NaN, 1.0 ) + NaN + > y = {{alias}}( 0.0, 1, NaN ) + NaN + > y = {{alias}}( 2.0, -2, 0.5 ) + NaN + > y = {{alias}}( 2.0, 0.5, 0.5 ) + NaN + > y = {{alias}}( 2.0, 0.0, 2.0 ) + -Infinity + > y = {{alias}}( 0.0, 0.0, 2.0 ) + Infinity + > y = {{alias}}( 2.0, 1, 0.0 ) + NaN + > y = {{alias}}( 2.0, 1, -1.0 ) + NaN + + +{{alias}}.factory( k, λ ) + Returns a function for evaluating the natural logarithm of the probability + density function (PDF) of an Erlang distribution with shape parameter `k` + and rate parameter `λ`. + + Parameters + ---------- + k: number + Shape parameter. + + λ: number + Rate parameter. + + Returns + ------- + logpdf: Function + Logarithm of probability density function (PDF). + + Examples + -------- + > var myLogPDF = {{alias}}.factory( 6.0, 7.0 ); + > y = myLogPDF( 7.0 ) + ~-32.382 + + + See Also + -------- + diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts new file mode 100644 index 0000000..7e7b49e --- /dev/null +++ b/docs/types/index.d.ts @@ -0,0 +1,132 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2019 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 2.0 + +/** +* Evaluates the logarithm of the probability density function (PDF) for an Erlang distribution. +* +* @param x - input value +* @returns evaluated logPDF +*/ +type Unary = ( x: number ) => number; + +/** +* Interface for the natural logarithm of the probability density function (logPDF) of an Erlang distribution. +*/ +interface LogPDF { + /** + * Evaluates the natural logarithm of the probability density function (PDF) for an Erlang distribution with shape parameter `k` and rate parameter `lambda` at a value `x`. + * + * ## Notes + * + * - If not provided a nonnegative integer for `k`, the function returns `NaN`. + * - If provided a non-positive value for `lambda`, the function returns `NaN`. + * + * @param x - input value + * @param k - shape parameter + * @param lambda - rate parameter + * @returns evaluated logPDF + * + * @example + * var y = logpdf( 0.1, 1, 1.0 ); + * // returns ~-0.1 + * + * @example + * var y = logpdf( 0.5, 2, 2.5 ); + * // returns ~-0.111 + * + * @example + * var y = logpdf( -1.0, 4, 2.0 ); + * // returns -Infinity + * + * @example + * var y = logpdf( NaN, 1, 1.0 ); + * // returns NaN + * + * @example + * var y = logpdf( 0.0, NaN, 1.0 ); + * // returns NaN + * + * @example + * var y = logpdf( 0.0, 1, NaN ); + * // returns NaN + * + * @example + * var y = logpdf( 2.0, -2, 0.5 ); + * // returns NaN + * + * @example + * var y = logpdf( 2.0, 0.5, 0.5 ); + * // returns NaN + * + * @example + * var y = logpdf( 2.0, 0.0, 2.0 ); + * // returns -Infinity + * + * @example + * var y = logpdf( 0.0, 0.0, 2.0 ); + * // returns Infinity + * + * @example + * var y = logpdf( 2.0, 1, 0.0 ); + * // returns NaN + * + * @example + * var y = logpdf( 2.0, 1, -1.0 ); + * // returns NaN + */ + ( x: number, k: number, lambda: number ): number; + + /** + * Returns a function for evaluating the natural logarithm of the probability density function (PDF) for an Erlang distribution with shape parameter `k` and rate parameter `lambda`. + * + * @param k - shape parameter + * @param lambda - rate parameter + * @returns logPDF + * + * @example + * var myLogPDF = logpdf.factory( 6.0, 7.0 ); + * var y = myLogPDF( 7.0 ); + * // returns ~-32.382 + */ + factory( k: number, lambda: number ): Unary; +} + +/** +* Erlang distribution natural logarithm of the probability density function (logPDF). +* +* @param x - input value +* @param k - shape parameter +* @param lambda - rate parameter +* @returns evaluated logPDF +* +* @example +* var y = logpdf( 0.5, 2, 2.5 ); +* // returns ~-0.111 +* +* var myLogPDF = logpdf.factory( 6, 7.0 ); +* y = myLogPDF( 7.0 ); +* // returns ~-1.864 +*/ +declare var logPDF: LogPDF; + + +// EXPORTS // + +export = logPDF; diff --git a/docs/types/test.ts b/docs/types/test.ts new file mode 100644 index 0000000..e29e9c0 --- /dev/null +++ b/docs/types/test.ts @@ -0,0 +1,119 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2019 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import logpdf = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + logpdf( 2, 2, 4 ); // $ExpectType number + logpdf( 1, 2, 8 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided values other than three numbers... +{ + logpdf( true, 3, 6 ); // $ExpectError + logpdf( false, 2, 4 ); // $ExpectError + logpdf( '5', 1, 2 ); // $ExpectError + logpdf( [], 1, 2 ); // $ExpectError + logpdf( {}, 2, 4 ); // $ExpectError + logpdf( ( x: number ): number => x, 2, 4 ); // $ExpectError + + logpdf( 9, true, 12 ); // $ExpectError + logpdf( 9, false, 12 ); // $ExpectError + logpdf( 5, '5', 10 ); // $ExpectError + logpdf( 8, [], 16 ); // $ExpectError + logpdf( 9, {}, 18 ); // $ExpectError + logpdf( 8, ( x: number ): number => x, 16 ); // $ExpectError + + logpdf( 9, 5, true ); // $ExpectError + logpdf( 9, 5, false ); // $ExpectError + logpdf( 5, 2, '5' ); // $ExpectError + logpdf( 8, 4, [] ); // $ExpectError + logpdf( 9, 4, {} ); // $ExpectError + logpdf( 8, 5, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided an unsupported number of arguments... +{ + logpdf(); // $ExpectError + logpdf( 2 ); // $ExpectError + logpdf( 2, 0 ); // $ExpectError + logpdf( 2, 0, 4, 1 ); // $ExpectError +} + +// Attached to main export is a `factory` method which returns a function... +{ + logpdf.factory( 3, 4 ); // $ExpectType Unary +} + +// The `factory` method returns a function which returns a number... +{ + const fcn = logpdf.factory( 3, 4 ); + fcn( 2 ); // $ExpectType number +} + +// The compiler throws an error if the function returned by the `factory` method is provided invalid arguments... +{ + const fcn = logpdf.factory( 3, 4 ); + fcn( true ); // $ExpectError + fcn( false ); // $ExpectError + fcn( '5' ); // $ExpectError + fcn( [] ); // $ExpectError + fcn( {} ); // $ExpectError + fcn( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function returned by the `factory` method is provided an unsupported number of arguments... +{ + const fcn = logpdf.factory( 3, 4 ); + fcn(); // $ExpectError + fcn( 2, 0 ); // $ExpectError + fcn( 2, 0, 1 ); // $ExpectError +} + +// The compiler throws an error if the `factory` method is provided values other than two numbers... +{ + logpdf.factory( true, 3 ); // $ExpectError + logpdf.factory( false, 2 ); // $ExpectError + logpdf.factory( '5', 1 ); // $ExpectError + logpdf.factory( [], 1 ); // $ExpectError + logpdf.factory( {}, 2 ); // $ExpectError + logpdf.factory( ( x: number ): number => x, 2 ); // $ExpectError + + logpdf.factory( 9, true ); // $ExpectError + logpdf.factory( 9, false ); // $ExpectError + logpdf.factory( 5, '5' ); // $ExpectError + logpdf.factory( 8, [] ); // $ExpectError + logpdf.factory( 9, {} ); // $ExpectError + logpdf.factory( 8, ( x: number ): number => x ); // $ExpectError + + logpdf.factory( [], true ); // $ExpectError + logpdf.factory( {}, false ); // $ExpectError + logpdf.factory( false, '5' ); // $ExpectError + logpdf.factory( {}, [] ); // $ExpectError + logpdf.factory( '5', ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the `factory` method is provided an unsupported number of arguments... +{ + logpdf.factory( 0 ); // $ExpectError + logpdf.factory( 0, 4, 8 ); // $ExpectError +} diff --git a/examples/index.js b/examples/index.js new file mode 100644 index 0000000..01a79fa --- /dev/null +++ b/examples/index.js @@ -0,0 +1,37 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var randu = require( '@stdlib/random-base-randu' ); +var round = require( '@stdlib/math-base-special-round' ); +var logpdf = require( './../lib' ); + +var lambda; +var k; +var x; +var y; +var i; + +for ( i = 0; i < 20; i++ ) { + x = randu() * 10.0; + k = round( randu() * 10.0 ); + lambda = randu() * 5.0; + y = logpdf( x, k, lambda ); + console.log( 'x: %d, k: %d, λ: %d, ln(f(x;k,λ)): %d', x.toFixed( 4 ), k, lambda.toFixed( 4 ), y.toFixed( 4 ) ); +} diff --git a/lib/factory.js b/lib/factory.js new file mode 100644 index 0000000..7dd02d7 --- /dev/null +++ b/lib/factory.js @@ -0,0 +1,52 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var isNonNegativeInteger = require( '@stdlib/math-base-assert-is-nonnegative-integer' ); +var constantFunction = require( '@stdlib/utils-constant-function' ); +var factoryGamma = require( '@stdlib/stats-base-dists-gamma-logpdf' ).factory; + + +// MAIN // + +/** +* Returns a function for evaluating the natural logarithm of the probability density function (PDF) for an Erlang distribution with shape parameter `k` and rate parameter `lambda`. +* +* @param {NonNegativeInteger} k - shape parameter +* @param {PositiveNumber} lambda - rate parameter +* @returns {Function} logPDF +* +* @example +* var myLogPDF = factory( 6.0, 7.0 ); +* var y = myLogPDF( 7.0 ); +* // returns ~-32.382 +*/ +function factory( k, lambda ) { + if ( !isNonNegativeInteger( k ) ) { + return constantFunction( NaN ); + } + return factoryGamma( k, lambda ); +} + + +// EXPORTS // + +module.exports = factory; diff --git a/lib/index.js b/lib/index.js new file mode 100644 index 0000000..89cba15 --- /dev/null +++ b/lib/index.js @@ -0,0 +1,51 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +/** +* Natural logarithm of the probability density function (PDF) for an Erlang distribution. +* +* @module @stdlib/stats/base/dists/erlang/logpdf +* +* @example +* var logpdf = require( '@stdlib/stats-base-dists-erlang-logpdf' ); +* +* var y = logpdf( 0.5, 2, 2.5 ); +* // returns ~-0.111 +* +* var myLogPDF = logpdf.factory( 6, 7.0 ); +* y = myLogPDF( 7.0 ); +* // returns ~-1.864 +*/ + +// MODULES // + +var setReadOnly = require( '@stdlib/utils-define-nonenumerable-read-only-property' ); +var logpdf = require( './logpdf.js' ); +var factory = require( './factory.js' ); + + +// MAIN // + +setReadOnly( logpdf, 'factory', factory ); + + +// EXPORTS // + +module.exports = logpdf; diff --git a/lib/logpdf.js b/lib/logpdf.js new file mode 100644 index 0000000..a5e5d67 --- /dev/null +++ b/lib/logpdf.js @@ -0,0 +1,95 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var isNonNegativeInteger = require( '@stdlib/math-base-assert-is-nonnegative-integer' ); +var gammaLogPDF = require( '@stdlib/stats-base-dists-gamma-logpdf' ); + + +// MAIN // + +/** +* Evaluates the natural logarithm of the probability density function (PDF) for an Erlang distribution with shape parameter `k` and rate parameter `lambda` at a value `x`. +* +* @param {number} x - input value +* @param {NonNegativeInteger} k - shape parameter +* @param {PositiveNumber} lambda - rate parameter +* @returns {number} evaluated logPDF +* +* @example +* var y = logpdf( 0.1, 1, 1.0 ); +* // returns ~-0.1 +* +* @example +* var y = logpdf( 0.5, 2, 2.5 ); +* // returns ~-0.111 +* +* @example +* var y = logpdf( -1.0, 4, 2.0 ); +* // returns -Infinity +* +* @example +* var y = logpdf( NaN, 1, 1.0 ); +* // returns NaN +* +* @example +* var y = logpdf( 0.0, NaN, 1.0 ); +* // returns NaN +* +* @example +* var y = logpdf( 0.0, 1, NaN ); +* // returns NaN +* +* @example +* var y = logpdf( 2.0, -2, 0.5 ); +* // returns NaN +* +* @example +* var y = logpdf( 2.0, 0.5, 0.5 ); +* // returns NaN +* +* @example +* var y = logpdf( 2.0, 0.0, 2.0 ); +* // returns -Infinity +* +* @example +* var y = logpdf( 0.0, 0.0, 2.0 ); +* // returns Infinity +* +* @example +* var y = logpdf( 2.0, 1, 0.0 ); +* // returns NaN +* +* @example +* var y = logpdf( 2.0, 1, -1.0 ); +* // returns NaN +*/ +function logpdf( x, k, lambda ) { + if ( !isNonNegativeInteger( k ) ) { + return NaN; + } + return gammaLogPDF( x, k, lambda ); +} + + +// EXPORTS // + +module.exports = logpdf; diff --git a/package.json b/package.json new file mode 100644 index 0000000..5f08c14 --- /dev/null +++ b/package.json @@ -0,0 +1,96 @@ +{ + "name": "@stdlib/stats-base-dists-erlang-logpdf", + "version": "0.0.0", + "description": "Natural logarithm of the probability density function (PDF) for an Erlang distribution.", + "license": "Apache-2.0", + "author": { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + }, + "contributors": [ + { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + } + ], + "main": "./lib", + "directories": { + "benchmark": "./benchmark", + "doc": "./docs", + "example": "./examples", + "lib": "./lib", + "test": "./test" + }, + "types": "./docs/types", + "scripts": { + "test": "make test", + "test-cov": "make test-cov", + "examples": "make examples", + "benchmark": "make benchmark" + }, + "homepage": "https://github.com/stdlib-js/stdlib", + "repository": { + "type": "git", + "url": "git://github.com/stdlib-js/stats-base-dists-erlang-logpdf.git" + }, + "bugs": { + "url": "https://github.com/stdlib-js/stdlib/issues" + }, + "dependencies": { + "@stdlib/math-base-assert-is-nonnegative-integer": "^0.0.x", + "@stdlib/stats-base-dists-gamma-logpdf": "^0.0.x", + "@stdlib/utils-constant-function": "^0.0.x", + "@stdlib/utils-define-nonenumerable-read-only-property": "^0.0.x" + }, + "devDependencies": { + "@stdlib/bench": "^0.0.x", + "@stdlib/constants-float64-eps": "^0.0.x", + "@stdlib/constants-float64-ninf": "^0.0.x", + "@stdlib/constants-float64-pinf": "^0.0.x", + "@stdlib/math-base-assert-is-nan": "^0.0.x", + "@stdlib/math-base-special-abs": "^0.0.x", + "@stdlib/math-base-special-ceil": "^0.0.x", + "@stdlib/math-base-special-round": "^0.0.x", + "@stdlib/random-base-randu": "^0.0.x", + "tape": "git+https://github.com/kgryte/tape.git#fix/globby", + "istanbul": "^0.4.1", + "tap-spec": "5.x.x" + }, + "engines": { + "node": ">=0.10.0", + "npm": ">2.7.0" + }, + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "keywords": [ + "stdlib", + "stdmath", + "statistics", + "stats", + "distribution", + "dist", + "probability", + "pdf", + "logpdf", + "log", + "logarithm", + "ln", + "natural", + "erlang", + "univariate", + "continuous" + ], + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/athan" + } +} diff --git a/test/fixtures/julia/REQUIRE b/test/fixtures/julia/REQUIRE new file mode 100644 index 0000000..98be20b --- /dev/null +++ b/test/fixtures/julia/REQUIRE @@ -0,0 +1,3 @@ +Distributions 0.23.8 +julia 1.5 +JSON 0.21 diff --git a/test/fixtures/julia/both_large.json b/test/fixtures/julia/both_large.json new file mode 100644 index 0000000..9665fac --- /dev/null +++ b/test/fixtures/julia/both_large.json @@ -0,0 +1 @@ +{"expected":[-5.854809619354385,-35.94800253355344,-0.2077921946085759,-34.09174867303638,-0.09893865647069733,-31.82257131663177,-0.6061448840192449,-42.18406849310606,-10.840672470671278,0.8616538444673623,-10.057479432855077,-14.520912205188434,-41.45717153881347,-22.22747906296811,-16.772936316322237,-5.185986797766535,-3.3303553470159053,-12.76571062295343,-7.550798794591864,-51.477927662699635,-1.4451453431712271,0.26717224753487523,-3.1474346989520567,-3.0236036847599075,-36.127816544205416,-13.342186240350626,-4.057039107834891,-0.3351454560068561,-3.0045454741899156,-41.770191720841744,-15.749307333686644,-8.87540674672968,-15.270831517481474,0.5059876769442657,-13.454591703250491,-13.173125162931981,-11.049097513720234,-23.007029810931826,-13.394492978619121,-40.703137589806154,-9.722864069536223,-19.60937399893924,-17.439439820199386,-2.054481321955677,-8.295694177838786,-33.72601203381093,-12.372448801530192,-38.97864808157213,-18.131125553673,-10.267681867776009,-8.008883309835532,-15.762982072558781,-27.658700359739555,0.5987739059810626,-26.578479729051097,-9.951542681216388,-5.331934289420219,0.409895227693732,-31.696125737720386,-7.104805508545512,-7.812639622045051,-30.06927430921745,0.6948797168429284,0.1800111087934848,-10.550709809326511,-6.39636360131434,-0.7779099758804771,-38.651979999995596,-3.292604780227139,-1.1584592979958699,-29.442664177546167,-2.5011839575450865,-0.04379093842049597,-4.3740117874996045,-13.90983396941622,-6.285888127841208,-0.037154476753344046,-0.3766793224039211,-25.735931014751042,-13.715823340332491,-2.060566524463369,-11.86436798198438,-10.324399170846277,-0.506082019077462,-4.741179008833783,0.41444131996854194,-8.842990667667038,-2.929195668646075,-22.96867627145282,-11.762738083553502,-1.3428648865484396,-2.256969082779893,-0.32112820930248365,-7.305847614675621,-3.6000582891596546,-26.802943105703637,-14.936200731211148,-2.8258132305287886,-36.81690600028818,0.44927386638785194,-18.268097950452738,-19.298623472011638,-30.29485547851685,-0.1955413625144291,-35.44262767539708,-0.6428935912513634,-2.0717369796225418,-4.692245586835352,-7.572217850619128,-4.369986889290841,-17.25378798731568,-27.13584229278893,-20.855781781153144,-29.4541419572438,-45.51747869028314,-1.4586215660881514,-20.22810548237186,-1.71455577502728,-0.6180809080530159,-4.642389747233599,-21.508326000102777,-0.9903583548892958,-10.824351017759621,-8.31723895488097,-10.352195475274822,0.138811940368893,0.12552107347023256,-0.529629974160541,0.7155495676395183,-26.54803518366225,-23.158318030389648,-31.618413586747646,-10.0432117394014,-11.589582985711093,-24.60678690193842,-24.951040182212363,-18.879696681023535,-1.3906523923781435,-16.399140372892536,-13.23021433260713,-3.2255980234696313,-19.06111114387388,-9.246387533133984,-5.054580029932604,-26.73900635015892,-31.686082126609115,-26.515200182691157,-12.380110075252222,0.39839408583259805,-16.210005009321772,-11.539106984023377,-21.461268658400183,-2.713069745714302,-8.406942625882731,-17.830185722235576,0.24203469345341322,-40.41754693181169,-12.864846456222908,-10.663995993171486,-51.05963103721445,-47.261829686627316,-11.826592825446745,0.05357839021432609,-28.823029255579865,-43.127114583770144,-1.4303257007951604,-10.8911452369532,-0.21836556416913044,-5.506208301931707,-0.6469679574736382,-2.2349039447473826,-1.8135648226187095,-30.0082490050039,-32.051954747831026,-22.17603291752355,-24.04758925073652,-1.3298036381406528,-16.161832590024844,-6.934822364392963,-10.11696118930272,-5.4106526408329545,-40.55279189094359,-3.185039426333555,0.3290189179370624,-27.496659854393606,-2.7842629073933707,-39.17697040073378,-32.66856155660935,-33.59799830447425,0.3454368229799174,-37.9267633842705,-14.593033546114107,-16.72270571685136,-30.58650284219493,-10.559986705278718,0.22489925188128845,-3.9900000588005398,-11.339140406042281,-24.923896860636034,-3.4693010479837696,-22.827609307203538,-2.394714977243824,-0.33230383983313816,-14.029248321615574,-23.614184008731804,-11.752564587424533,-7.506750026078411,-4.163955662039534,-3.271079085366272,-38.810174447613505,-0.4084913500869596,-0.20454935598420398,-11.48811571757897,-14.599188830753071,-13.800209583839411,-0.854153411961184,-15.632300686098876,-5.437608463244494,-7.045470131392865,-8.111079585758032,-3.2544921305827286,-3.438705230775881,-13.479428890159609,-17.73855232621413,-8.254736887732374,-3.224475502297033,-3.197410031718691,-0.37590873397192004,-30.10977837375086,-21.70543170048223,-16.780738869777082,-10.629893141014835,-33.426876606987875,-4.954848481823879,-24.966779229659885,-4.612877342546895,-12.285282723008494,-23.11975897836026,-7.9840166044468415,-18.111124569491242,-6.623469543207257,-11.000090025163637,-16.206108265312096,-2.491965927095125,-21.87475206317249,-7.780490712864216,0.1666762896364422,-0.9160476577614447,-33.81097550465785,-49.52930390783036,-11.49117616663127,-0.4403890486610087,-30.839496054344437,-25.602398092762773,0.3226229313987674,-54.51627700682885,-12.43167560174721,-11.60544583692514,-2.654573367292118,-0.7221628784656868,-36.68996893658124,-22.38999505015793,-8.95017693681224,-13.88885384818399,-2.6924143569084507,-1.7073578466882111,-6.840072929125925,-20.741177717233963,-0.6723161616684106,-30.436616111039044,-32.27966180540694,-9.647262582870166,0.22177948248293022,-4.874334041907876,-4.7576107891897195,-6.470410001362204,-38.94989360489582,-28.061456126471374,-30.719563351485892,-1.2703048165108122,-19.065713060945583,-14.394909243934244,-10.772222455600259,-15.394428817243554,-6.436520525888776,-11.763157369189688,-0.01691805060573337,-4.1256772945487485,-5.396787914120683,-36.2906680711698,-8.96687033005038,-1.7803509726423812,-0.0669983590347707,-47.769463591822614,-8.892980765578576,-26.151766522910453,-29.6208017177406,-3.8311319786294287,-42.010812901609675,-26.92879570733944,-5.782230721756049,-14.666564262224188,-8.602511809063982,-12.115617017340906,-11.006261920054982,-2.111971380176407,-15.041825028544077,-0.506528114026763,-37.659254671497756,-41.54755002690275,-11.799738808902434,-53.58843976449649,-4.791596417927805,-6.559036174473067,-0.048706621726863464,-21.95368572970686,-0.2744495131396656,-42.596517215392815,-27.146514989875293,-17.68045639211406,0.23591242978528681,0.4311978026249679,-23.073624563422747,-27.17891706101395,-18.637576457751607,-1.4803390486729642,-23.553286632980893,-57.31597483301087,-0.3004860704883505,-1.8480670040237936,-22.6920631260844,-20.17162038798185,-8.640015271790894,-52.605095312283815,-5.866891564164018,-9.78634756837218,-17.085276598913957,-36.25340386060123,-49.05580010383323,-35.786127279719075,-27.280534586211242,-4.52238666406318,-0.5049627137748764,-49.757012697998064,-19.27467672104934,-5.476737109699942,-6.7117029309493486,-3.7844815993022403,-37.10893633581332,-26.80764113684687,-2.3674217467553555,-16.572926378449544,-1.7183427862007634,-4.584823656734048,-5.149686509545618,-4.483717104180571,-10.383269395661177,-38.12514994828697,-16.01790592176191,-17.751239681030377,-18.401302764696986,-21.443063901362894,-21.16876741830808,-30.28257185757132,-51.42350360873629,-21.369114195361327,-0.0752512580598581,-21.99948947313634,-20.180935121970418,-27.30794272517616,-7.3512581764521965,-5.692403549941851,-3.809636737469738,-17.131701707112132,-34.43908470842366,-11.813443626171875,-24.303235500567858,-4.919341986633588,-6.13768026239776,-13.137521638146133,-2.4818466807323474,-37.22991530051162,-30.05732165730251,-34.70844240721361,-19.395334026772318,-29.738275486679452,-4.89640834098319,-6.783650646997874,-13.214992021452506,-2.7535182470594046,-21.502284817961385,-22.579154759926247,-9.26724043993103,-50.446085796267866,-3.6568489936268453,0.5801375661006727,-23.6433533731948,-17.895258608342548,-40.55016115678791,-25.074629916828375,-16.386441345344807,-23.808622824517016,-12.013402906791795,-7.115020484434582,-0.7341385420378255,-20.34991995981941,-8.254727028927103,-3.5441949803772257,-1.2924822230471764,-17.09123488078654,-16.123660498110063,-51.048435544056375,-27.498711689406186,-26.98804138084221,-11.042909851883586,-9.846285192167047,-15.747787511130745,-8.126514748228846,-0.3206890869300838,-20.526662745832816,-25.99674264065502,-9.885603832848982,-63.230894863469885,-4.853678626680887,-2.9787333286594166,0.5454896658585038,-3.8632773763409283,-14.900145848172283,-12.044336875064,-3.4629195550601377,-0.17357973628463164,-18.007976143923198,-14.011006024572659,-43.972655131474774,-9.540930281622362,-1.4940838486086485,-23.77408047364352,-4.700653567829974,-9.168485336257977,-9.771149365242838,0.18657929600476608,-11.432534752085093,-0.1668926224775098,0.32944018900225336,-17.129665359757933,-5.549891461308139,-3.5728897605677914,-0.04989750524459291,-14.656678501521927,-4.672466748328676,-27.431250200869574,-0.9373496391251539,-36.39969394707219,-16.28417943778191,-1.6631613904050009,-18.978034878369552,0.37788702915766503,-4.65705504889075,-25.743455617878084,-17.387811902665824,-22.637186951741963,-42.62875257466418,-2.7377012912684733,-2.1054710567901758,-0.8549100279618691,-12.399623792284073,-3.6843495589918014,-16.54739124227179,-27.604519191653196,0.22046707418532518,0.8359844845675868,-4.561989650196492,-0.04425113360555555,-18.31529097492805,-45.727331838724666,-59.783886708482385,0.37118392336193073,-15.573653392821024,-10.830353622718556,-2.2557918248911153,-19.910397411549425,-0.022918457756751387,-0.3495023366601884,-0.9030148171458627,-27.986551204960136,0.061119441756667836,-40.63211885166115,-32.434308264991664,-56.62904872940784,-5.197978532977572,-17.45995199779941,-40.374212453280066,-3.277641737625777,-0.30656295512665066,-20.291295195048964,-9.393681688003134,-27.693310955978383,-11.393723567220208,-16.24097942024889,0.6385761335379967,-4.475033736289683,-32.32922942908328,-8.207001484096383,-28.705666845087954,-21.88298651934864,-20.522671132547714,-0.3823723480845942,-1.1735589203599428,-5.588418611271438,-27.4748890584772,0.08020710362569794,-26.787331198913705,-6.918513210510859,-52.51159014195031,-21.326279983426808,-24.939795571303556,0.283665516792023,-1.6218741740506148,0.2464987536125003,0.2777203743666128,-37.77933208027948,-7.1992929246431565,-0.4247944613314938,-30.79919093576768,-29.75595212345481,-10.775147634335463,-2.0939830930379015,-0.08334610583890534,-16.307435644434484,-14.819399011171864,-23.440223691971042,-36.53618727464194,-37.351520049800364,-14.89561357817729,-19.479486160669296,-16.2365526576263,-20.57498864515637,0.0921119219176676,-15.09940074260632,-7.406139417528928,-8.900699416005713,-16.668790684301612,-19.884522033123865,-1.1407550329342664,-2.771911683970543,-20.995872359075836,-27.04089321883181,-15.396204411694875,-6.4652865533910635,-0.7587951180733712,-42.18894443386834,-26.594058855309658,-34.32942366893444,-19.775047888621426,-18.31472719638735,-4.7420461203647655,-1.2298478179474985,-24.93500503271002,-8.725250651892777,0.4215325712858693,-37.74887159372854,-0.3280360878223334,-6.246544572515231,-39.300158981636486,-1.3678637522612291,-8.585438049259102,0.33858233592977394,-0.2385356691310898,-9.637648583249025,-2.836620898678748,-15.118143756976654,-19.42026278279393,-45.72845997627957,-11.69994677028248,-0.6138977557945036,-15.230579065911883,-35.369315231116225,-23.165289791034194,-5.215876463585333,-18.029556617478164,-26.266586403897733,-22.97487461131332,-13.317451080742808,-7.372477187803921,-0.4177282034977212,-7.949154197828733,-19.485280590699464,-36.02584001557375,-35.766255374341455,-0.6788681101668756,-14.873551194673723,-56.04855547884895,-0.19015324545141699,-6.4531439734492135,0.2892155821872149,-21.503360410976434,-16.047658240960867,0.47650895811698035,-8.154747440558488,-30.459676835779174,-36.500648906073465,-20.676572191071777,-20.125677061160356,-20.334674860843613,-18.373947494299248,-15.203189888852952,0.0732785530097062,-24.02369184570422,-2.028757560261063,0.40937244954965557,-21.125302393693662,-38.233121343848495,-13.085028205852428,-0.5814936965909872,-8.557939548090582,-1.6752628456445837,-33.971796286248185,-46.428206161155394,-15.170394791116635,-0.8842450608454806,-8.31736999955613,-50.58512281933512,-29.41199151685587,-41.823059043809934,0.43678174313005114,-9.32376376826423,-33.93125880907073,-24.745111010137375,-19.229545391333883,-7.073536446378413,-32.74021575983985,-6.319493458496662,-32.41214874481629,-46.4720652914022,-25.2065790797664,0.651691460266298,-6.679511489152246,-6.148684361478587,0.4654475356071748,-0.698776520746156,-41.74656266274392,-0.6516086271292627,-2.575586923966753,-5.963882951051847,0.26490139446255556,-11.69526752605777,0.21253566618528286,0.5519748467580885,-15.81899151745375,-41.17078545954065,-22.343551028534183,-1.1925375502451292,-18.37200944708127,-1.0772664148768292,-16.253175426993653,-0.5507533344918261,-21.359136924661485,-1.3969843978234837,-6.436295131033107,0.3041577664666,-23.765438114064853,-21.4559613258701,-9.580834839316601,-2.809548102262897,-7.217859443116245,-0.3786137518157866,-5.632020494107925,-18.157835894273767,0.35545058957127473,-7.567905227383099,-0.2112593919592176,-9.737823698908109,-24.581469514162226,-34.822568397559266,-14.142636414066278,-4.1581634735182735,0.5881608592725298,-20.495181651248654,-38.980002836038544,-49.963699536821885,-3.4755289729303467,-5.444867985644386,0.4679792376338945,-0.4186457699526809,-34.46508535493267,-0.6112003540465323,0.17128513579344595,-24.57300161626238,-43.572613003122,-22.572149654081652,-37.67650361453161,-0.4509780937596748,-16.839769054562787,-31.359355444023556,-25.017659980393915,-1.738136466691384,-43.00259603147142,-23.583644363406158,-2.87579820179623,0.2037362113913317,-33.58883906540584,0.17931070211577493,-29.32370436650578,-15.757150121610367,-2.3531180966623078,-11.749399564629233,-7.178265605126695,-3.1627050301298225,-8.331152451026618,-0.07623016960043083,-19.500210135577923,-1.7479196442588187,-47.953100233205504,-10.464488662033903,-21.284663044247292,-23.701327354295334,-16.581116297146803,-10.937883747240939,0.25267898270798295,-8.400199532198158,-21.938157602982027,-8.939025748865374,-28.62293660795133,0.3040512913532769,-1.03278597042834,0.3142867477225044,-5.579429656927758,-1.391381881686745,-6.056561006056816,-24.902621757284994,-34.563617535100846,-6.656425627880261,-21.145330159361304,-0.4693073515606221,-8.215487112641854,-31.460236579758476,-10.64363525671598,-8.649284686488558,-5.20535050345647,0.5056484992455612,-18.9628142762025,-3.564969244725765,-10.808794382956236,-0.29525828404146104,-16.429931034468996,-35.64401364820649,-4.670997517079333,-1.6031020636525524,-9.518982197777014,-0.1263037400082001,-0.36901046082502464,-31.11237773784947,-14.002010775404514,-3.5431131190258602,-8.694651967228063,0.41121907353404463,-40.335162240316876,0.3916267767867909,0.335716268669628,-40.97491452337852,-0.031054697677225906,-8.741651927435365,0.04569617595981379,-3.6539962541916617,-12.777187735836575,-7.004909143557986,-12.13926852468512,-8.800158750905718,-14.940807680867053,-0.23247516303494198,-36.94170579071263,-8.110263410789852,-5.022817047858396,-11.58328193172006,-0.03600950618746612,-6.3313114083128905,-35.443822848116696,-4.300462550256643,-0.8208345415255391,-10.055700994884084,-1.6833795779356304,-9.445165260865604,-10.090696633269685,-24.9272716569041,-9.052631198251188,-39.36685123647964,-43.04252124462345,-13.933972651133221,0.34456834904209055,-17.36921761787077,-25.032514007427302,-1.3841792346579695,-8.28696347212789,-35.1810594032485,-1.0614946009757937,0.3251850591789225,-5.94561176770964,-0.7764705624558035,-2.5171169663080195,-7.797992256326204,-25.832699525310566,-28.35950239655344,-5.890387777198744,-2.4871327211533134,-5.958988366441137,-4.654592664888907,-19.775822392027493,-0.21610946144395982,-21.89163593177795,-33.120404738560204,-14.65851786438202,-9.91413117644257,-45.25501744242394,-13.119175706695922,-23.431749233952424,-4.304015581362124,-30.04958912861658,-0.2802796616381342,-11.171823346734735,-0.30574820191441354,-8.0739107118902,0.4718046496286492,-0.039645528788700535,-9.170250474606979,-6.586365748951877,-0.671876429061975,-6.325358498866397,0.24208687882787716,-9.185627143736223,-24.54880094495133,-20.345123294151968,-0.9992436101369253,-0.23617057375935868,0.05394154885799329,-18.736289980820683,-6.542022869991119,-58.11935342070925,0.6736003354247155,-20.952862579001042,-39.01087207348255,-3.890165299034961,-2.581142671595367,-18.21147779531989,-8.0318439134732,-14.625912589276464,-26.346862838657255,-0.46727982937988477,0.6029587749744336,-25.854136735089153,-20.705185279109216,-17.105162381483392,-7.958481037734646,-19.701374572356276,-20.70675517295819,-7.67656381002808,-15.571188845767605,-33.80974632753452,-5.8181572599836135,0.29009172905094216,-0.46981502818879006,0.6352246378329012,-8.378875600932783,-1.6576410855898045,0.5201198360404091,-0.2384107250983858,-20.88999497659517,-0.9818763681021467,-32.68930797286015,-13.58701139207216,-13.914694601322065,-1.0665220797975903,-7.413861806725356,0.2969533424917081,-16.046585341849774,-28.2086319396122,-11.72759010214799,-38.46578737578713,-32.810810585143926,-21.437613837973608,-0.8494423063129712,0.7819607416372238,-9.702156057290548,0.4028850744668726,-5.36165653394346,-20.74812451391128,-10.227808352704157,-1.251637627154449,-6.1609850397389705,-4.771611488642381,-29.67478751792156,-10.366012535244444,-35.03019177862502,-3.4396486336490226,-2.9994607114793257,-21.20265443489765,-51.86319718715301,-28.138111748979853,-6.255325437133052,-18.2671765762857,-4.0491248794419645,-22.75145956496172,-19.24850047158297,0.8216740530420856,-32.62719706016833,0.16760053425732524,-4.344941561268378,0.3280010870870571,0.5725535253769944,-11.455214107374246,-32.32549178458129,-25.941927108014273,-23.43356180551217,0.5387904736459839,-29.472951784472805,-12.092790079818792,-33.670672300215344,-3.1179341872139825,-19.381681432340145,-18.266698248118967,-27.676292302334737,-42.4362124999476,-8.218727476272063,-7.065733763698486,-2.1464746210255066,-1.241451053510831,-44.2620922471317,-4.626494407186172,-40.51059896460068,-5.648503548157071,-2.9870634829162253,-48.44505632171062,-3.0697247428425807,-14.79777284413954,-15.400002320220752,-0.10421728403693509,-32.40879953198863,-5.479672071622413,-13.609293157157651,-31.239722331778218,0.4528981750287513,-1.4741280325954786,-19.860855704796002,0.1776765750227045,-23.794974211022613,-27.074880672164337,-2.98286516444497,-21.622129795296242,-0.8417261868554093,-3.2807814910480584,0.47710350356689935,-9.92600017281577,-21.523065175815322,-1.8898116289027542,-28.720366599184846,-26.36955617227106,-22.973831117499497,-35.91844906507552,-14.02894346476377,-1.1763044734538046,-32.24836330955245,-30.663163838319054,-0.6880526183769438,-0.8814582015095973,-1.0697323757406871,-6.218128371249378,-0.5180895466848918,-5.8538664198292105,-45.408124750270986,-33.40363719751674,-22.172537631560324,-19.365445429869585,0.5801012974077429,-58.54735491691664,-4.586948331119201,-7.324239119552315,-39.78093448707292,-0.06770370644471368,-1.4943843238279402,-0.6787165136444799,0.7556761782573638,-0.5818709388770475,-15.98899380764645,-22.973832965818097,-28.129063724651186,-13.402061143072972,-0.23894086464705255,-46.316763840285155,-9.81097903366566,-5.322844607825589,-29.731124872924656,-0.6255492628983639,0.4170533076470595,-7.715391836551579,-0.35365435466539674,0.17337476046205813,-3.0203541632523914,-8.65106356223598,-42.86683991193003,-29.048032454182632,-43.609859728772165],"k":[11,14,20,14,12,11,18,14,14,10,19,15,16,11,12,20,11,16,16,14,15,14,12,13,17,18,20,13,12,14,18,18,15,18,11,15,19,15,17,17,18,16,17,15,15,13,11,19,12,18,19,13,15,11,17,17,12,17,13,11,16,18,13,11,12,20,14,14,15,19,13,18,13,17,16,18,19,11,13,19,10,12,17,18,19,12,15,15,14,16,17,10,13,19,11,10,15,14,19,15,20,19,11,19,11,18,18,17,12,18,14,17,17,18,14,16,13,12,14,13,17,14,20,16,16,18,15,10,10,19,11,19,11,12,13,16,20,15,15,19,10,15,16,12,19,17,11,11,18,12,16,19,10,16,11,13,14,18,13,11,16,16,14,14,20,16,20,16,14,19,12,13,13,20,13,12,15,13,17,14,15,14,10,12,18,11,11,11,17,12,15,17,11,12,17,14,18,18,19,13,11,16,19,12,18,20,17,19,19,14,20,15,13,15,13,19,12,14,15,13,17,11,17,16,15,13,11,20,19,17,19,19,13,19,18,20,19,16,19,17,13,19,18,15,16,19,19,12,13,13,11,17,14,18,17,14,19,17,17,11,11,16,12,20,17,14,19,14,18,20,11,18,15,19,20,11,17,14,18,16,11,18,15,10,18,15,17,18,20,19,15,14,20,10,11,12,14,16,14,14,13,12,12,20,13,10,16,18,18,11,13,10,11,18,11,20,14,18,16,12,16,10,20,16,14,12,17,13,16,13,12,11,15,11,19,18,18,15,15,19,11,20,18,17,20,12,17,20,17,11,18,17,10,13,11,17,15,17,16,12,17,12,16,14,10,10,16,13,18,19,10,17,10,16,20,13,16,13,12,12,17,13,12,13,14,14,16,11,17,14,16,14,12,14,15,17,14,19,11,11,18,19,11,18,11,20,19,17,18,15,14,10,10,17,16,15,16,19,19,14,17,10,10,13,18,20,14,10,16,18,11,12,16,11,12,13,10,15,19,17,14,16,13,14,19,19,16,18,19,10,15,18,13,15,16,11,14,19,12,17,11,11,13,15,13,14,15,18,16,17,12,15,19,18,12,12,15,16,19,19,18,15,12,14,14,14,11,18,13,18,14,17,16,17,16,17,12,18,16,10,19,19,19,16,10,16,15,15,16,19,18,16,12,11,15,15,17,18,15,14,18,17,14,19,18,12,15,19,15,10,17,18,17,14,17,17,11,17,15,17,10,12,12,16,14,19,14,18,10,16,10,12,18,17,15,16,14,19,12,11,11,13,12,15,11,19,13,20,12,17,15,18,12,12,11,13,15,16,14,13,12,16,11,16,13,20,19,15,12,12,20,12,19,13,20,10,14,15,17,19,14,12,16,17,15,18,20,14,17,14,11,15,13,18,10,14,13,15,18,15,19,17,15,13,13,16,19,10,11,19,20,17,15,12,15,15,14,10,18,19,12,19,19,14,14,11,12,19,10,16,18,14,14,19,12,16,15,11,17,13,12,12,15,12,14,11,18,17,17,18,17,13,14,11,17,17,12,17,12,14,15,18,15,13,17,15,15,14,10,12,12,14,10,17,11,15,19,11,18,12,17,10,18,13,14,14,10,16,14,19,17,15,10,17,13,20,15,17,13,19,17,20,17,11,15,11,12,18,16,18,15,16,15,17,18,12,16,15,10,20,13,14,11,14,12,20,18,12,15,11,11,10,18,15,13,19,13,16,15,13,19,16,14,13,18,16,17,13,10,15,17,10,17,19,17,10,16,19,18,19,16,12,19,13,18,14,17,11,17,12,13,18,17,13,11,11,18,18,16,20,14,17,12,18,13,13,16,20,13,12,11,15,12,17,16,19,16,13,19,15,14,18,15,11,16,19,20,17,12,16,12,20,19,17,12,19,12,17,20,11,19,11,12,16,14,11,18,16,13,14,10,11,16,14,15,14,14,20,14,12,14,14,19,12,13,15,11,15,12,17,16,14,13,13,19,19,18,20,12,12,13,17,19,16,14,16,15,17,13,18,13,12,20,20,13,16,16,16,20,19,16,17,10,11,19,16,16,12,15,12,19,12,13,13,13,12,13,12,14,15,11,10,20,13,18,17,14,10,15,14,11,19,20,14,16,19,15,16,12,11,18,13,16,18,13,18,12,20,15,18,14,12,20,17,14,13,19,16,10,15,18,14,18,15,15,12,14,12,18,16,12,16,10,17,14,18,14,14,16,11,17,11,14,10,18,12,10,19,18,17,14,16,15,16,16,13,19,12,17,11],"x":[0.22533533402442796,3.9178663787298564,1.9991830313893688,0.03287885365424237,0.792938355863142,3.1333321302720196,2.131982458553947,4.17893691206355,3.580017090728236,0.5285329890178891,2.6550981129492843,2.3311431328464005,4.558948585478516,2.571340315743388,3.94548866985986,2.828338469422478,1.3316004057690256,2.7207377947472775,3.072643425086894,4.752181380397742,0.515673361500566,1.1315918859133767,1.9786872977319103,1.504089234578363,4.310996709892606,0.20129023113121147,1.9340171983952448,0.8562724639050989,1.7894133914080956,4.076251764308596,0.18682599267342725,3.5632371807396543,3.395814301465591,0.9740107684223998,2.0309118915380955,3.5082968318406884,3.2543496530326066,3.3277039523460363,3.148993493487462,0.03557722119134854,3.831220368955679,0.12563628996313692,4.562601337748296,1.434242564613859,2.933348999383709,3.5837927852686424,2.3086281514523668,4.4571528103108635,3.807547986167501,3.7043192865171215,2.8371206336902013,3.8253093661801763,4.585096948654501,0.7187227713043531,3.2995565947111527,0.38257324737618115,2.222419230544305,1.086344082837638,3.3225832313214596,1.974827672266466,2.6735576090943503,4.658446577630766,0.705033289199849,0.7711674507318489,2.094887867990276,2.6998262877146715,0.48909271514783303,0.014600094070672531,0.44164473312832353,1.6945048550871455,4.2560582898650825,2.1006788972994315,0.6724265413888197,0.5147714878454623,3.929080126436988,2.194652815579121,1.2818933269128474,0.4011492733759925,3.2068618751693534,2.744551386938622,1.2373377474320313,1.9734055349979096,3.4615047735715434,2.0552812342428153,2.0190688641156926,0.9043699300603991,0.3499019440045814,2.326752498983079,4.324705612391643,2.6432739105102,0.531819771732781,1.3554234041543733,0.5634563881190846,3.9132759906346815,2.1142377017998735,3.5855842541971015,2.8529193850140633,1.7109959416164988,4.431638324593962,0.7715219018359698,4.823982146074495,4.6355391653056,3.726084439124131,2.0081667400196324,4.197284773263212,1.8355516585851595,0.9683815184832512,1.8980901908834014,2.900000958521712,0.6188874192690019,3.0188571869311676,4.007452909177705,2.91613199848514,3.726082333851586,4.203850028504404,1.8557459359426731,3.014958366488049,0.3513976478275971,0.9118975015094188,1.8801144543790616,3.5823875807102246,0.7817140598576666,3.007258296600661,2.45543195254045,3.7414819135231046,1.3417511200625343,0.7521130474748539,0.8569052308275371,0.595961487140837,3.714483385280868,3.2814424405131493,3.8581343900484,1.685330823851019,2.3738810061011706,4.02441866143139,3.2797582237264344,4.3238769083090745,1.615809852087139,2.5881904708364214,4.418813576211634,1.641290225906309,4.69153635127935,2.7063572905691755,2.088131909978379,4.875733477315861,0.060687212041654615,2.965818154492953,0.05909560720775975,1.0541130565917634,3.3265751369103014,2.283981720601461,0.15928059154098673,1.2896944531968924,0.28103316258248023,2.490890479030049,0.8674236939124902,4.901411306089748,3.7298130757043344,2.4337008546024563,4.2309740979909725,4.682759025153849,2.2417298909050585,1.2729397339013437,3.4857570108945666,0.05958252480426807,1.441222959744991,3.173068890408095,0.7414004356259796,2.8158265478210955,2.081022303463973,1.0729492965796872,1.3067531041698721,4.052817540074084,4.730941319470729,4.8725163349012055,4.128502026290809,0.5855130802121722,0.08315225099460033,2.468043705681456,2.90727947343562,0.34607477988362834,4.936238569709317,1.382087183779409,0.7626226462057473,4.720836124843336,0.24522300868609181,4.439340636631977,4.26932836540642,4.2642912360143495,0.6493906149306394,4.2177627524774355,3.010527856547922,3.3825843901650954,4.58853547923339,3.500149213629342,0.5992343054352389,0.7113594534460155,4.414864427722049,4.670344979672093,0.43217907596129757,3.912639729873865,1.3687418121392192,1.562231396208218,3.279951932831142,4.615226703047036,0.4723053288550161,1.9609547474622657,1.809185074162566,0.6725540516334916,4.188784882820494,1.890432523673129,0.9029731971607879,2.3671586713066937,3.164826404370833,2.8928603112291684,1.8202817613451205,3.3718787908214534,2.7548601716308605,2.0217748074328945,2.8971105635925043,1.9767095849212146,1.77632428828288,3.1766813501526636,3.229237116005362,0.34552313728420936,1.6680057225208378,1.177902890950867,2.2265264568315226,4.556685903589513,3.1915792968303194,2.809483941485804,3.7066789078915754,3.5297623110015586,2.958801900449103,4.546711979890661,0.4850612149312572,3.881980518351532,3.87148920041961,2.1048821386904013,4.097123445452315,2.7803461668233242,4.044993404060358,3.6187130662512246,1.35617389183452,3.5149881522610684,2.649509770700983,1.4117432435483235,0.5533436658123492,3.4330196638290666,4.4359347802450735,2.763979079520351,1.5098683076213992,4.5503925261191105,3.8669709679598507,1.1814050357543582,0.003938072341698184,4.3458219867716625,4.120733585094732,1.664760020986601,0.43786255317224243,3.78795184297674,3.416003699442082,1.984470963441889,2.9340624636790693,2.6189858061111924,0.5872017420792552,3.6334768624240854,3.71021090712334,1.4946284021606082,4.688144255119237,3.6825153779070616,0.3062397899018454,1.0614077068051886,2.8070755838076433,0.5405709813079329,1.5158072117762955,4.187092803718432,3.495923276735181,3.7234938950062646,0.5485051953098552,4.073260551530224,0.16065766453169594,2.8991223512333475,2.9190494862964944,2.9705332166551957,2.4585465940639075,1.1165569254744157,1.7305618195836148,2.664516384279735,4.316877706640655,2.237374021287184,1.9541125502386614,1.227566084717756,3.9293254652966967,1.8913713582589964,3.3707374144917788,3.4995427355505626,2.612217574306058,4.192912260712278,4.317204971790501,2.7836815649094557,2.221088176511039,2.703663008532616,2.8122976783034828,3.3159407920011494,0.9502773486453475,0.17160593673308355,0.6539978896507848,0.07035812982881917,4.008025006359719,2.425209215755287,4.6455465325818865,1.5610231392301266,3.0447831949621107,1.176492951550533,4.436855103091868,0.9994798827876406,4.722406817142918,3.9433843863756524,3.998053417368548,0.9975644047544174,0.6250157237001408,3.5628870991785733,4.923737223878356,2.667825049883964,0.30040385830028327,4.03998704454779,4.8896447147374245,0.6478178401471746,2.0164422684892602,4.6522745808755515,3.8622870694708666,2.271385117108257,4.248589009231527,2.539203940618334,3.9465379414195176,3.3291439731482155,4.4452357824093145,4.71854867217898,4.093280617417111,4.638737907446046,2.5813889122450395,1.5141530489987265,4.988381036445622,4.045622576318607,2.33822590754449,2.2947435371435034,2.994523334851664,4.018506656747708,2.874394352631604,1.7299595274884993,4.840577800500703,0.9132701425131251,2.2398374109512167,2.014853531830644,2.0518726460487366,0.23560938534033848,4.163201533759424,2.7878323869427657,2.9885934127121505,2.7460522747157876,3.104723647238897,3.5161485408866033,4.619086222756614,4.813859969680624,3.246531478223116,0.6839394072775051,4.999834913981907,3.7857619581061988,4.128053318886533,0.08087477201236148,3.1991813756557774,0.16815623857708073,4.6667080213388346,4.196223173642192,2.1126179404477163,4.543538922658133,2.033327225775702,2.0623420149650675,2.198226410200145,1.894001996715422,3.8050953382500383,3.914821294710895,3.7039237102843736,2.842903874195236,3.365910179036801,1.8162704059042156,2.253717812050695,3.753528710079329,2.0085352083880936,4.936628599764182,3.5000134395993743,2.0212458146866252,0.004947478033568986,0.4038610284493549,0.9066368501123268,3.24597709282604,4.989540328499623,3.5763513687577597,4.470440304603535,3.5516833938394954,3.6272866779277626,3.230651633690659,0.3811266487236631,0.3047939254014842,4.240510690270758,2.4283045404577344,0.40352257168307815,2.1696555409447935,3.1515529107005147,3.70747409762786,4.313254782331856,4.949864590529645,4.109012033935693,2.1698071262004346,3.5405719974505323,2.5720674292144308,3.010055516285469,1.475799418305117,4.947116199441136,4.4414945915956725,1.8718663953118786,4.914767254123282,0.3302622745253625,1.922867266095467,0.9271233584492855,0.31511528849754167,3.426138911227714,2.64597231495037,0.6764158930078601,1.153606754909945,4.115255150689761,0.1419947618505779,4.680557751363602,1.815562549964107,1.4087493545006446,2.839397264312452,0.256023838986722,2.7420583761613972,4.009498497434998,1.2260006516630817,4.064515959741374,0.5863312429455181,0.6557499226022767,2.9766847001462917,2.3555008850219883,2.6278807533214565,1.5112930736902275,2.804659841486629,0.2014574384151102,4.591878041421667,2.160763643986262,4.063325086485522,2.7433736419629,1.6705336030939322,2.693843141643546,0.5462673768893866,0.5662147074548673,4.5800741093028305,4.964202188662814,0.03884031174125613,3.8875309090984036,1.5300769248808022,1.352167029637651,1.7278262859995142,3.5937158700587677,2.4065476476749836,3.882311154469832,3.797069183656058,1.2286842177300117,0.5619289924944626,0.40991435388452846,1.721649110557797,3.1698436270719776,4.774426763813579,4.924000621152899,0.8630703597127432,3.059341457854968,2.677109145525102,1.6792240806973235,4.493381503480287,0.7541311689705665,0.8857749108351309,1.3002717324481428,3.3244405448514556,0.7209429725082572,3.774085475381245,4.387938897709931,4.998121734703785,0.3353672216916115,3.5349252574064627,0.042778920306336676,1.9329214022551933,0.6800463821700442,4.513935672221324,0.2376859039863699,4.112546910180891,0.2746960344177585,4.447978745648764,0.6118060299302963,3.284553936074107,4.850186888359374,3.0940481471724413,4.670112199479774,3.4725561397658478,0.14886003882481957,1.7042692154277272,1.6186495052656602,2.200284901947068,3.9338451781175654,1.221390433737265,4.0760969159015445,2.134165265068171,4.854082984074534,4.982777036530292,3.2049143041858152,1.1109480216250478,1.8906125112299899,0.5398255890193893,1.0211315334903015,0.04031531600435567,2.804564168216918,0.552953762809214,4.219726912846523,0.06204251174393827,0.08326496950078255,1.780010021438575,1.8540165833891076,3.8428117296607778,2.7020242851152556,3.471962626313302,4.918087061851605,4.551392686412306,0.125059008517715,3.709521714170653,0.17312050576939075,3.0029971064686234,0.7139373950437256,3.9501148207973125,0.4531446719236065,2.4901893917559157,3.0796963337414573,2.554514229093275,0.5170105123289803,1.883114387190511,4.832044621180139,3.200905181045872,3.69099449952081,1.3155650367895366,1.2119534229769413,4.211339879798457,3.4990478368548903,4.469764646385207,4.0587463796950916,2.8972231139447793,1.775862972620904,0.49512462028221904,4.153368053015914,2.769662306313858,0.8424812297871842,3.975672500562395,0.9375392498167501,2.6151729746584653,4.332767746855051,1.148539985494138,2.3520098723732383,0.9058175085408471,1.023422683177424,2.069475882578431,1.673757634524199,3.2081280059614348,0.14618171845346417,4.224689320544767,3.035893045428307,0.5842422130552594,2.693863138656307,3.679705690769677,4.134328630150078,2.3836248158246756,2.5204673140776865,2.862027636705723,3.9137910549629473,2.630730950202862,2.595002714229029,1.2103972429839494,2.6585151060050602,3.8488267685509103,4.53851125819836,3.5043744302330437,1.5274268133747204,0.21524721604602726,4.664974634953428,1.2788040379036936,0.3260729969238485,1.2383102546117264,0.019407715746365684,3.136410340780386,0.9454646456789084,2.3718322429410876,4.957100524352197,4.98611580307527,2.5894883715319716,3.5737016048320025,3.27052387829478,3.66951029672562,3.146779386547566,1.4511023342396379,4.081926319108989,1.9648529008419513,0.6050811153724112,2.4824173751377367,4.037687947785823,3.8467656639181724,1.6617325807725813,2.229840548721466,0.5238712276734292,4.599110718355108,4.658939665774433,4.241810225438819,1.2965900370898276,0.4098463869877733,4.811749932776145,4.837894164495207,4.91819574637462,0.6897293595089948,2.2843762936282195,4.019280365008697,3.990492217502007,2.7157167977343413,3.288075518957434,4.391379088258849,1.9682714031978654,3.754377562012486,4.9570605512343855,4.851324113581756,0.6452707974406358,1.7039690527302542,1.9704352941637682,0.7695101507496882,0.9629382763927963,3.7600762294917436,1.2036188753689914,0.9465155591089225,0.2551887022240895,1.075296037622372,3.3459573121737076,0.41435014053862185,0.9953506902747133,2.250749966219674,4.608987641066565,4.195158094491789,0.43296321999611975,4.640169533867921,2.0528646116259597,3.1822651035891028,0.7561877874030665,4.008680492628111,1.2910248355790854,3.298899889909915,0.6492229352635281,3.3755367678937143,3.2868605317105617,1.963905021150718,1.9696636979614646,2.348376744589059,1.189225833103168,2.3201141620836063,3.6352099453410602,1.0656281231732223,2.6565719140971176,1.8617897776268022,3.2436200058307096,3.035610686088802,3.455888299573372,0.18903139436320604,2.714613004129501,0.7380410307521101,4.557613494233812,4.953846399674491,4.437641168040943,1.7228134716193022,2.9281261884842413,0.6496777600478398,0.5125738374735067,4.476209729311723,0.5103282064975156,0.8177176658681229,4.05236682054462,3.6497866370981225,2.597519813395268,4.794456238962931,0.4834250516351235,2.262192208861337,4.842337360227523,3.7365042106744175,0.4960327781089646,0.053328100708820436,4.7185205794476826,0.692608386602962,1.1193470520920723,4.883223356724272,0.7753998400889395,4.671297445820785,4.299502364516355,1.8395915096793214,2.484800979524425,0.17271501337560946,2.1512467005945357,1.9717519981278409,1.7529297838433044,3.8753261737269185,1.7729092723120232,4.023240469923298,2.2907340905840625,0.07686462799688432,4.481866591744616,2.8687771430500297,2.763794709529871,1.0016347742328435,2.789821914526086,0.09199582555017072,0.3512324855875071,3.9911155174719246,0.6979302449432745,0.5864914981780867,0.3613426770136474,1.983442233417394,1.5140956455123245,1.9741893772856034,0.11793675493745104,4.804285818767222,0.46242560320939097,4.700268744715913,1.9306199880388542,2.9749339524135285,4.6942907983281055,3.7257826339767086,3.2233520746262,2.263683152212815,0.930238349609962,3.0635614735620322,0.3640027298117532,0.07682059172352762,0.5282456311163009,3.3826998859750876,4.355764867849362,0.6033673782785165,1.4256204680639106,3.1283891780830233,0.3261148776903555,1.1266018714063508,3.6848051836947704,3.9183146991729148,0.3230575981870498,2.900894257972033,1.1445638646498946,4.859973242311856,1.056023449434188,0.9355683210468135,3.992978730157594,1.687842091209465,3.2058418383431397,1.2308803350524444,1.7810783878787129,3.2365955309710683,0.2810834343323343,2.3029945445293345,2.5381776540030323,2.9309399674989645,1.1007340613907002,4.976176365832558,1.4673241305683804,0.5733547894550095,2.8217119266058477,1.2200473823101565,1.701077654008537,4.459152585214077,1.8377848692924237,2.2200463816313376,3.6944193834743864,1.2600729065486105,2.2180607676983644,0.48620561489473024,3.2922140228261543,3.8814627340746966,4.992946525834155,4.942029609801582,2.0066142836765044,1.136489131460654,2.626730623132245,3.329268882748464,0.8051234374426997,2.7302787241983015,4.8761717495365104,1.5667108929382545,0.8043463918090921,2.9935677358064328,2.161130947894807,1.3736354933611794,0.4048689853273557,3.3840219932463054,4.919819435245676,1.9133763674979576,1.5980486737722976,0.23358514058270607,2.201410223969532,3.580064900150405,1.2753219371211821,0.05222158115352871,4.853646189793555,2.44683161276528,1.965898713583688,3.9587904540224583,3.3288019287883452,4.584231736919851,0.469211329675967,4.671023899099559,0.9228769225081201,4.3693903120043736,1.0427171907832211,3.2941108381158157,0.8676347776921023,0.5675624587675931,0.15484849307123572,0.3809736903282501,1.9967624945682694,2.325281723104374,1.281578333541623,2.0815156454074457,3.451992355198752,3.181610782989316,1.7544399495949403,1.686310339299304,1.0594721206212498,3.927378393586082,2.2063407003472477,4.908823650529718,0.8113242864808989,4.624054993637504,4.588072203187679,2.9885120391360775,1.487408716296349,3.7049740012449184,3.057934961028559,4.02266612220255,3.861385438345729,1.9030116195421465,0.830637905358832,4.58356546530354,4.070454177913529,3.4483238477666713,1.56757884187817,4.972040178734456,0.08730033069555665,2.491443681019158,2.9725252372088518,4.660124532135318,2.5125959913955542,0.996407635179205,1.122508765376935,0.7298124970206921,0.19247851037103247,2.314865608249017,0.6269091402825033,1.3197232024212102,3.155511619421494,1.2287024933378343,4.187650726309299,2.4036354409923355,3.540212836803173,0.9176098425848278,2.9850306363187604,0.5575193232326481,0.06589064727854033,4.848584090706876,4.530440273417473,4.3910396683838595,4.676531321781962,3.0158842069623915,1.6238504886568028,0.5906717778136483,2.0940920570243815,1.1553476191146828,2.0384687701196524,2.8863293404691492,3.3537295582953766,2.0740157360364,2.8671977750250663,2.273827938791142,4.545632691863263,2.0630725562636743,3.929780539457519,0.45788613848592563,1.8170897590257418,3.898212037645795,0.013225121080457924,3.4299840859365904,2.453799743577607,3.2281139379948467,1.8808720164357917,3.736123285853882,0.11416855182427965,0.5494852683414131,4.314380571717581,1.3678680749985361,0.4374294934709333,0.8444825913757348,0.7738801171899901,2.9390658697914542,3.282874452280132,0.08909762759306772,4.916376832793824,0.7662838820206896,0.028016424361907433,2.90400035360056,4.7704916650076115,1.6752984948961425,3.7653950419916926,2.756279738990526,3.681945165381989,4.457680273093755,2.495170556135511,3.570436776444137,1.857695434675376,1.653806842609391,4.98222110019945,0.31351818322150504,4.707290417333541,1.6181839705640444,1.9374405105961656,4.0441458756606234,1.8727693184233896,3.8125517904493442,4.325936926206398,1.1820190929580365,4.892290709814051,2.494743094107301,3.8957393733614043,3.6237420682464117,0.7241061846030761,2.4467020072053147,4.047294185556166,1.3280388767236595,3.2588645789492388,3.964142676760385,2.7318179280894994,3.802205576184713,1.2051461841166522,1.7941579911680017,1.0284688242796491,3.119968483341964,4.53724179915488,1.6632589531596975,3.574582806278581,3.938229362877803,4.792090755617221,4.477294408498164,3.5289444988388565,0.356584317665386,4.129604941655861,4.2644804213904095,0.39412326995658664,0.6904112302422838,1.3456094397325047,3.160746972852685,0.9019116747690104,0.27364961765530604,4.710963298940066,4.166488282833102,4.326861336434634,4.014472133232529,0.8861895044095203,4.484862442275464,2.149325265226313,3.1262210657635747,4.6718366823169575,0.9265206852475005,1.6080343168069422,1.8189161932853948,0.5926632964181722,1.893573656716493,2.479040676618076,3.515487926584282,3.3407169392532943,3.1707136032576355,0.9959518491940778,4.310898661564116,4.339666270918583,3.1336392288324912,4.825044945811047,1.4259842614040286,0.7936050704343156,2.9405872704303473,1.401992590252037,0.9775846810501487,1.2247949577210604,2.22609554275776,3.9506813483043324,4.634576758184367,4.409347832414371],"lambda":[11.333103802158549,18.346804439162106,10.982364934342199,10.71792083782893,10.690859525687856,19.388500030039648,10.27417938643062,19.013069145770032,10.587629766678612,18.882801219187005,16.956438484245616,19.67736133936701,18.135883476037826,19.050523821426694,10.909931708351861,13.100931383266643,16.43266054591332,16.40938871831699,11.637167477543215,19.029460831985805,15.27857810112148,12.084396764094958,11.179658200323033,15.87341689663239,18.11071309201475,16.812498259951237,18.29411125708737,10.339171817149094,12.310329523326164,19.376112934656504,15.332043608006893,11.47832906390148,13.671084933853678,17.246951277145094,18.47119218553159,12.31994586786568,14.24865441364007,17.234560457994867,14.939360120908411,13.16129061405837,11.032130755121221,12.99949459015659,11.533646799292663,17.051070852809584,12.144257855056178,18.73798081935036,15.500046835074368,19.214517952056816,11.808522262940556,11.679747816233874,14.535480416269289,11.364179051331568,13.766405909340246,14.898882355832953,19.97694872052245,10.611831615137955,11.805667766854246,15.688113189194565,19.478474136426804,14.156891632407337,13.643531204460025,15.457372743642082,19.234223049496574,10.952017409782417,16.68777635827223,14.697419348903306,16.213449496193434,16.311029398605406,13.90100159404713,15.641649898598502,14.466251898167366,13.63410806778105,13.326684069761445,13.012942071453713,11.66867889559672,16.851449009502694,17.794705919843814,15.278488645922943,17.832161233265253,18.5912408870502,14.455154898169553,18.759298101143088,12.109760478450147,10.477372577126957,17.544185776211048,13.549583188820357,10.008618099698673,10.931957513960402,12.734633185731967,16.310239358299064,17.687915564750107,13.370476595164133,14.370245019106378,10.042387020002234,10.16482329306826,14.584171774596445,16.189439702110413,14.343661205972612,18.696960692978625,16.17065445948355,12.200862256505856,12.677634660599912,15.744529025143754,10.14413727052852,15.435148423904304,12.45266553760148,10.268372831673162,17.189295493038507,10.240776177818475,11.989292324290473,15.803393644470265,16.57002558851505,19.957806060756432,19.18484620116725,19.85621893212197,12.58359441999593,16.581110073866515,15.149148676832795,10.032576506634117,14.22660588511047,16.42181993188215,10.59532730480048,15.851352068723399,15.278739078225207,10.760077212429227,14.79258903710636,14.864695623226446,17.373388002454906,18.020155508877668,18.68295409791997,15.197287012700496,19.752775374501958,19.472365089653287,15.306867505003519,13.77139369780629,18.861960456937474,13.863441320880007,13.779153055601615,18.728005375812174,11.19709832074754,12.045332930487254,10.96152791818485,14.390767909330165,12.373880334276881,14.210347936425585,13.830989397241456,18.293130527012476,18.515095626790576,18.632484154455614,12.775820008842055,18.821970959057417,14.075025084292708,14.896855261159175,14.283529246109737,17.363323580501323,12.199412972923982,15.731984490639288,12.750995294980676,15.031173709176564,19.649932081091208,19.171539640696192,19.393540759571742,12.363672295820384,18.08316274262245,12.519779996762107,16.68249378820912,15.030154664564604,14.882612071854949,10.340685438352278,11.296717964648353,19.993487904002627,16.34305131774892,15.38359520769345,16.570172873162498,10.664270115895473,12.765783650971409,13.931379182825731,14.638592659517949,14.799538058275543,12.754560904728327,13.856558098249945,15.652705338460127,14.495359892165279,19.23135023760868,14.516636860517036,15.55989908124462,15.584970712109689,14.382851856904264,17.54944165969863,14.094967699630006,18.09497867302015,16.26604268700877,12.221339667781958,13.264454291588653,12.083623362918654,16.80953028736956,10.96520963583551,10.143309376547812,14.308869485330991,11.225333261497328,12.579177931568001,19.5727390476658,14.953729913820919,12.023023058116863,13.697808875930095,10.342067462135276,19.378706096838734,19.01249120916676,13.355679558817023,17.984292299387704,12.67280173329132,11.936135609626486,16.00662467782481,14.386934201743962,14.18658179415458,13.775957195485748,12.358886879530447,10.536824798640215,16.85730163705385,11.112041670372278,14.846911049870773,12.113242561929834,14.846673477103469,16.05226465123991,10.660022648821638,14.441082268164696,18.55926910515704,10.129007299208814,16.232483003377872,18.570221156140892,19.842942329684803,12.256992975451528,18.924988104514814,11.848487337485412,14.322277548443598,17.079725972050607,12.401587551037416,15.27767649213086,19.83187658331917,13.123537035510527,10.681221930627538,11.351579592432802,14.595902740368011,18.938752920030705,16.37704279446082,15.452418569403957,12.63172704318469,11.817407598920457,19.607127710691515,19.376195203639384,12.386568746688567,14.281839659136807,14.344257834158666,17.123995440273237,14.102128881067246,17.51988650038944,11.09067057179992,10.617800457259081,17.001978672436778,13.297224439920782,17.531286471499484,17.07152154186675,16.407021424228986,17.99706608721662,10.398369209017703,12.040802148643035,10.605115004911603,14.087353271357827,15.977509687931343,16.259238904701824,16.594994332396524,14.80488809437981,16.21257243853556,12.467213141894023,15.278385600448965,18.03870102417804,19.511725369500546,17.748824964098624,19.6508863972278,16.116119582265856,10.86198608203899,19.316999854587518,13.714226122689544,12.970112608204374,12.349851947312732,16.916665361151928,18.76856912276248,19.080762380432574,14.124971331179939,19.043541010953057,16.637849415641263,11.018540167472612,13.120546792731735,19.607125210055166,16.328799753680137,16.514775312205153,18.302867249793557,10.971260885403545,18.898556342107835,13.96877990453702,10.1187516391962,18.41428250763695,11.65411448396364,17.768500477337867,11.047379469503515,19.556749535976152,13.469858219441422,17.893644530267963,10.13011185056733,17.992864652951287,15.80334566534466,17.974000692532595,15.610065824726627,12.111611247240866,11.028679008604676,14.523325963364046,18.797239422794824,18.66948054160775,16.370619520776483,11.07495687372564,18.905698345890855,12.60630211113769,18.62737682329734,13.05987052521878,18.675420303851745,17.928398444198038,15.225837155292654,19.415080915091558,16.33534675732823,10.063910421393778,10.915774840800147,11.85249060338334,16.135234930920262,19.98589303272801,14.69001965842028,10.72469463445864,16.301027840459383,16.684079606031098,19.02538592598752,19.940234262774343,11.781794236992845,13.862473640152446,15.262092346666654,19.018357790796177,14.987657920557462,11.294848523749309,15.794256794936356,11.252045109244236,19.762585347349965,19.01611041502056,16.649340829941764,10.587021876703801,19.48845900166477,11.738040381618104,12.186808397207605,15.606541285510833,12.609741885746832,19.37485724803645,17.768942928586107,14.981474497078985,19.94642247287007,15.999326525677724,16.09250881486335,13.973069788655472,16.825150290292996,14.041331108543583,16.34007409575953,10.338690448541834,15.485850961339406,17.028940988278364,19.401125990887063,10.505591471723735,16.005602817948592,10.80361967341117,19.47812326094411,18.25016615070471,13.325350781805543,13.343395448362333,13.490023268900623,17.616730203083144,14.536728706033124,18.762459722021294,15.429219575515429,18.447461018334263,17.863659497251547,19.088963192834143,17.454925342674862,12.070469018544621,12.384615310675409,11.945065053520011,11.460365059420365,15.667015772315745,16.341572577063342,18.990901971671686,14.455252451178426,18.094939806581813,17.362378471875388,11.336681737625527,19.872778758591643,11.613919575996086,14.95624945294356,18.09004518846258,10.763716722312362,14.711816900287749,17.81795213750703,14.658467910655492,17.286850455523467,17.59243984553432,11.443856263906815,15.607025044444025,12.353860430409735,18.707731415959334,10.65764533460178,16.103909634028895,19.48413977308785,10.711515023287749,19.15052900149187,13.736358191346705,10.192123914480396,10.426156943782745,14.573224555256894,16.400320784472324,19.187445496305777,12.116756737277012,15.655382479899718,19.437054881729754,15.870627609048533,10.78975306163705,16.461715294676555,12.094072925684763,11.952332536034177,10.858917804532584,17.316547881575225,15.977950940348967,18.520828834740623,14.414362091638777,17.1893880384391,19.503121027333147,15.829511156462853,10.157961035293088,11.138485525502688,10.306956093846013,14.387280056804595,16.201345962683213,18.87642480303196,15.624892715389024,10.67511526672094,13.56186288452264,18.71068917567039,12.187676386671365,13.68063182557135,10.851615775208778,17.30004815321246,17.577098443876984,14.543390525071157,16.58470831577327,18.73136703230771,13.703760814560095,11.95472708540538,10.560078696143218,10.009578060055802,18.88745335840305,15.161370361156564,18.294417989970338,10.193989094331968,11.221349498329714,11.268332129825327,13.710549359051093,17.174757287674712,12.649203297592134,19.341209681340036,12.958668551053659,10.255581167059498,17.718921940093928,16.5699781700116,19.370865893666853,14.65877002226442,15.931622294414407,17.30609191771954,17.80800853177995,12.904869871128854,14.297053008012421,19.06472539908533,15.454137595938722,18.654792583607254,14.047665425469011,18.840414338684162,17.14181077562421,18.829260789916425,19.41908679518754,13.51558975290909,11.29094554832864,14.52754478038962,16.788391878090003,12.185171845312102,17.189080920607257,13.95036760038856,14.422987752172837,11.055724730113266,14.402280120398608,10.276054451373076,15.844755996071054,13.39510476430159,14.217048433522862,13.29184743757298,10.419510013477922,10.609031709983622,13.32652716973065,14.860431659650313,17.94452127805962,17.28454215328303,15.709488127110017,13.640878893320194,17.439195650183102,10.93825233172393,18.720857281782514,17.05686931918516,13.96448002436441,19.67358455080618,15.379205587352605,17.00065459920377,13.114606569480578,15.582338340804869,17.772471646318987,18.104911141187326,19.5920614767781,13.478500159788155,10.659070715427376,12.429476001013091,13.760702040123846,17.732138626203085,16.348985234612556,17.481738918160907,13.427627419595254,15.068288999075019,14.053229092116402,15.53028294450737,17.468345902232688,11.631724807214992,11.139287743393126,11.559397037377057,14.041623377088424,18.737400245076124,17.267886964691165,12.84570508541015,12.663631332913534,19.00743198056661,13.966914637649772,19.726488624964308,18.517895999056524,16.74202704265251,16.056519687826693,17.377178417217614,13.844484696897405,17.621218160595053,17.70152721692959,14.942676369483648,16.13309945678445,11.433825531960766,13.905928688991494,17.007604174388394,19.122581097134578,10.551559618590336,18.000453297151353,15.489141352555404,18.127477219617244,12.507861730499638,14.55122371543321,16.222731171756113,17.171848074803762,14.426726930166872,15.212371889994996,18.76058765570441,11.90223636394071,10.799354328264547,16.04086436299336,19.91790863624508,14.299716751081398,12.115333552205277,18.740383283728804,19.574093006934966,15.057959792001455,14.046066665329631,13.772587887438782,14.288670347469276,16.07254787021713,15.411743858019227,16.27256344515802,19.28088836850498,10.537534939494652,17.687224671512425,19.540768575235088,18.504496076340835,10.323924498649365,17.55850185016923,14.981228207629709,14.645081139985045,15.318931791905266,16.367940605787894,14.99334866302257,14.493640098575929,18.884107187690887,15.417871331562562,17.519683388990916,13.844239641308524,16.366041493512522,15.408888620250778,13.855938474630076,13.33344743677647,17.555508119188517,19.176333739414435,19.00979713056573,10.284824279286477,13.861558364638748,12.748843651776639,13.33852847306005,14.6003237590745,18.592513941367095,12.020688382836791,16.46383650565235,13.718401363289523,19.935027721037446,13.505435434341331,15.585754307628807,15.131413260903823,17.231856529469773,19.709033024991776,12.429317505479672,16.569901041228697,11.917526865718372,18.084123766237873,18.18428332360727,18.51780555153085,16.12750388215307,12.326859335603572,19.521606498011984,18.899047886858966,12.56651490367279,19.26459790384267,13.334538796970797,19.860780878970914,11.171748285371503,10.58361765342874,15.38749413487417,11.878505094021499,10.237842222634267,18.754728730256417,19.33603910771572,17.23277412474488,17.858959226076635,14.675665820044848,16.84115789973061,10.49064824322629,12.416839788294334,13.393482387070318,13.75358953182242,13.682286917832773,13.599513202321354,10.616528741273246,15.040750536329888,15.582388062291388,15.095047357659482,19.58256354185835,10.853312035870939,13.876213925432774,12.24998413863081,15.33321628063532,14.857939691058482,14.512805744755013,14.701466799035764,10.06028065861928,10.688818557308329,19.004442376463754,18.59797732690153,14.980229509619875,11.3092609601166,15.097633938730212,12.518547333905328,14.339509163170955,19.992123811951526,15.902286051107403,11.855368343607589,18.19951200877295,15.207523280252119,16.95473594877997,17.48723316732932,14.169975048599381,14.139148532689115,19.804403431742813,19.78355798901198,14.496578427146607,17.311411156091506,17.746994373894715,14.818385915831282,13.936698649741487,15.17749382266895,11.730509346565931,10.58566901719735,12.59122481117118,10.76215922949239,15.286755888049523,16.31299658967812,15.20076109873753,10.070075599562468,12.624566316102273,16.055337268902854,10.158488521161484,12.810326176113291,17.644788951861692,11.751951428508578,14.415066466500932,12.999716078844763,19.195131115451943,18.701996280344915,10.270432032953593,14.934894115815524,16.93615653164833,15.671638846668674,11.414165907759784,15.051123530947578,17.3443138064276,16.510247804061336,17.137513472716144,19.929401754866063,14.546358471377143,19.35168403742747,13.560281041552306,17.419615907667325,17.1252834585295,13.243933987558417,14.974228408795643,10.542856576507555,11.559688730540486,10.578019676095822,13.457908894523152,13.190940197270745,10.936583609771617,11.189982640359439,10.114608987417423,19.043368798809283,15.7492711616218,14.441792028937414,17.174705788425147,16.570450493046337,12.647441285480728,19.11852180212317,11.927934761507164,13.477373676377372,12.014871449856457,18.962583280279222,13.089206457027485,15.612567993954784,12.579491354450582,17.856920415407096,11.430898153043007,16.879148028691613,15.405859748770034,14.483434251645956,13.80110251779518,19.004007718075563,12.147558479920608,11.787919281842228,13.066820739577595,13.960123468840377,14.721008222395266,16.093341660598405,19.780660109869096,13.21877338439608,12.704651418465343,10.218276640516308,15.861762381804585,19.343268372289124,11.095016884414777,16.836326070784885,16.86204368971068,14.879014987329482,16.85621751981527,18.862787031992685,10.269890199980436,12.029942784377363,19.96061297489586,14.951660755482308,10.286877637740943,17.040703555007024,10.579387634434546,15.181425498370693,17.52693683089194,19.040052557219845,15.700467546836464,16.913597230878278,16.88779775590526,13.181295363220467,14.21350888015471,14.06266618852506,10.225896931668515,11.441891504138926,11.923403006119804,10.511200684810564,19.71608728804773,15.705483625662655,17.49179798662812,13.774462752624682,14.381252676973627,18.35083392354703,14.654632112384714,12.020928945958651,15.251796664491843,12.292809809303748,13.93857948332613,13.172005582871176,15.915343189011837,19.83857339741808,19.89902861279725,13.976277362164577,12.94508655312136,16.782814054465256,14.591716441052423,19.299173753681522,10.545687186056611,19.21387203150064,10.165098121902446,17.86303987251962,17.78502018764633,10.898479666525333,12.655751478645517,11.941388629061706,17.132597533864846,13.497678029074432,15.784527464124835,17.74337633084184,15.145263309158892,15.42010242701447,13.245395714082813,19.68699026071805,11.64702865818178,17.643520603329208,19.04302089328459,19.768454039984608,13.606783743394512,15.028149425542592,10.909944715339126,13.495023913480413,12.175061105989544,11.977925262031167,10.81389121453244,13.909846052949018,11.434781702196098,17.857329156719953,12.408624075348287,12.797396333507606,11.58214090585683,18.95366258659431,10.867024908101774,11.819462053464882,13.979611337724737,15.247314114196078,14.8054028703429,15.380758178064005,15.869981651795587,14.67389448499289,17.272934525112284,15.793268117705244,11.727115049115081,15.40597130048268,12.193322109821967,17.281262730789614,13.449446788382044,16.652985829366266,16.327716612965556,13.466076322904144,10.729565543802043,10.890867063981538,16.72507294339912,18.29041299200003,14.70687892006616,10.364679640771772,18.908026269693423,16.983636902473563,16.480930248972136,10.167032983599519,19.369922545223147,19.920979803990356,16.232169427136764,15.894981979968684,18.230448193431286,11.996725139105473,10.123202356131547,12.123153635447546,11.711039664840271,15.732353272865875,17.631517412073865,16.930051274715574,19.972131663850725,18.15041413668039,13.072127812455507,13.043907480466492,19.2577561137387,13.763554158849507,18.42011069780437,18.104164887656374,15.708961737029629,16.910934144518418,18.472918836927732,14.218015697413835,12.747621656770393,13.798276490415994,15.493508279579906,15.387020287077206,13.890640357332487,19.32287505247784,18.702268962846567,10.511682237670595,15.10307559772352,13.454185441096215,13.256556930689241,13.547885117508214,14.233543653700917,12.3947142242014,17.872030583858972,17.22755037193246,16.38474193520537,11.112021692795874,11.331635791583528,11.470121585023325,15.479356485137464,17.687449800596458,14.673730143431962,14.533983085604845,19.731026448506206,12.711506010651707,19.82343432325287,16.94927774574964,14.121743510660522,10.293553011460537,16.788873318568534,15.727648854025926,12.335787227401735,11.653095806099703,17.10100821671759,17.76788745319272,10.23833342349292,12.130137049995465,12.16629117866466,19.625256452456597,14.79221632686661,10.696351097563223,13.056206018165755,11.435021064550217,14.976612679725466,16.764269156972723,11.749922069151136,10.860833083239799,18.1535405592247,19.21173736685945,15.158204256611917,11.06913681616966,18.242391779107084,13.090150925278971,12.743740232968898,16.755187548981148,17.09823571230943,19.712231156102753,16.14328316422661,16.22536884622563,10.041788794872094,19.28042410946499,14.608859317686075,16.716642867465968,18.374193751347864,13.332915220873527,11.598753842061393,17.71493492176173,19.87748218089666,14.955166951495098,10.322469683385368,18.113165992874613,11.296965691717665,13.226191985235403,11.290427471754125,17.02422151759151,11.167804485529942,16.44263006932712,15.746884707975005,16.16819597995093,15.351939731683725,16.112035124299926,17.458953686673272,10.076970370255962,10.951239810692115,14.428148091874348,13.163282473458453,16.642991447255866,11.768378033457555,14.433400391988886,13.346358290933704,19.85156732393646,19.250382883307644,19.224996981710838,14.837224751135205,16.8800926293747]} \ No newline at end of file diff --git a/test/fixtures/julia/large_rate.json b/test/fixtures/julia/large_rate.json new file mode 100644 index 0000000..7cb5304 --- /dev/null +++ b/test/fixtures/julia/large_rate.json @@ -0,0 +1 @@ +{"expected":[-11.020336947928087,-0.9951624837323414,-69.35154685190713,-56.13970550438321,-21.1469778339184,-26.120374837498982,-7.196253320475552,0.4823161921347201,-45.5001754735626,-15.82166354065587,-0.756739112972797,-31.1475806743117,-25.774466069068804,-0.021124609465490884,-52.43755758634144,-6.92731481994724,-4.223398869145239,-29.159898688124176,-34.504898838249105,-8.602532756017862,-15.309322941314207,-14.063173899940086,-43.76206239901757,-11.455669359698465,-40.83495668945878,-6.409031323430792,-27.18191447247635,-33.1863003352545,-47.36360170820424,-34.251338054388626,-56.10840769822663,-21.120381644210447,-14.707924139687265,-64.98507706831903,-14.33849733172513,-4.95322528534746,-7.2034862801833945,-6.577113646959651,0.8610924768992714,-40.52081905442585,1.1811175164622933,-10.029776687384667,-10.164170178219408,-27.68283374436094,0.7324406829531349,-37.25399455737294,-34.70646345352137,-45.645597857510374,-60.83978677877679,-6.399135898165471,-3.354536539783254,-22.88506549555389,-6.585808848597244,-72.8171483874908,-3.902663165551963,-29.820108709089183,-49.42156203906854,-2.6106631162364766,-4.539695544278021,-39.51039915705773,-18.76194009240098,-3.8830535172720477,-28.844533082978533,-17.978026217214058,-26.55259207620236,-44.125085053921225,-0.4759336212323828,-63.162160335965,0.3840479470417999,-17.173068023401,-1.506671672561768,1.1007402872689913,-38.033004058132796,0.7642639575725207,-15.881525852835319,-53.89205778780142,-10.080794694733177,-48.027345167717336,0.9491355822584575,-52.39543395255113,-55.84898412910981,-30.237543326705243,-34.43064861581124,-54.71997405991772,-13.405533880057673,-34.7641355157168,-0.6790337288481596,-0.7822032125264422,-58.13782714813114,-9.719827776690153,-2.5036643839036654,-30.400938654406644,-45.75541803308332,-5.205122104345164,-8.211071837185928,-9.110493679546188,-64.3788916272214,-52.036159991553205,-1.4131153382287374,-4.716132524395812,-7.1214235333539,-22.892466187174488,-0.4750926345784534,-3.705956858898621,-7.329815663954242,-9.982780488179843,-2.766072757767942,-8.691112505312002,-57.47822925534206,-4.8296912971623085,-6.329181761876363,-11.659591971693073,-37.19371584227171,-4.777803242515381,-12.176196675327427,-35.33432289273632,-0.9221504327024568,-19.640870525670426,-86.66401811273253,0.26691299748962427,-14.928861016733538,-21.738217223758884,-34.0922188588768,-34.20851343531082,-54.396827917760454,-69.3674441858373,-52.46433363502845,-70.8213720634129,-25.63548047564714,-43.11692161074948,-18.65364435828271,-48.85947838794095,-53.88741857696344,-14.733845403468266,-55.32973532734555,-6.171964932721795,-4.349193614218596,-46.66559314143329,-24.683322850166675,-15.058757344806365,-25.21365009015348,-9.619826675263326,-1.0099267205488984,-25.337701316359087,-9.154295610852223,-22.47064077502248,-26.598550964148387,-7.152919067250024,-53.130570729187774,-66.6821444283188,-19.041786490368807,-38.97816082610415,-12.030737500076299,-2.9357438824516264,-19.317292487108155,-4.914512169455969,-19.19503157447643,-3.8863302911895374,-6.172573071095583,-52.58149235003644,-16.169550803627935,-37.48957011738351,-35.68808527403957,-17.720098523513645,-0.6628139960704336,-25.889375009975943,-2.9147237204406062,-8.663846592379564,-1.5214273709665198,-31.78231037006767,-28.923940712939782,-55.41518147947907,-21.794629666397263,-3.128172782226226,-30.3708978304141,-42.5379475117109,-29.34867987343803,-8.342120593461175,-63.04774260836994,-59.9081134132402,0.6512595590008172,-8.971743593092492,-61.9577520294766,-11.704063199055176,-59.87336949789253,-0.5418093269079889,-10.448310658268069,-13.53703485428926,-42.63064677505895,-67.07275948425574,-59.37835385765467,-15.849320277485353,-45.834635285865424,-6.20673123225944,-5.1862365253781455,-7.418635370503566,-31.877418028792462,-24.800561684602215,-0.4465404211159174,-9.43489593736206,-37.485519667333506,-0.46940861978901127,-11.71575389091084,-37.71710717685199,-47.11195164565105,-34.07496671452526,-29.193602498414414,-49.46494625942118,-3.9711567807712984,1.2333794690831588,-39.7012697113525,-30.502989990223707,0.004930457192019677,-46.71384377467897,-0.25106162623242234,-40.98890171280915,0.23149026142712437,-17.6313923019014,-4.944576017978246,-63.78248236179547,-1.702864517470609,-27.777936075814257,-32.22775658999564,-59.48444588035947,-59.771630501314434,-15.811076847529275,-15.760257952641291,-36.939446057186636,-51.148592372028936,-13.188112799845744,-10.31989247464115,-61.27769298110274,-10.527912531886164,-44.94115676737828,-16.421514615386997,-0.8985228717808194,-13.653086018821284,-53.238890856160275,-42.99019713732826,-51.065078101402875,-49.28228250369788,0.16799032764844934,-38.175377778236545,-32.55384689303683,-18.33911399671752,-0.23591214556161377,-6.0692338367973315,-4.763535365482404,-24.72627222665726,-57.05964782292067,-50.07388874977865,-18.02202620480624,-0.6505995531591968,-0.9266523865194247,-65.46171864954312,-23.84961132006316,-36.66368501518215,-32.19689758320075,-10.058308729538957,-9.381522457710066,-24.687397765217735,-79.3344015281429,-0.7221521023029465,-2.644228152939468,-0.2256641809329163,-14.055519921113813,-35.5011660884233,-3.6381016483580746,-16.001542481978362,-11.132671814681588,-71.36564624762937,-48.68164298137258,-17.022305610319272,-6.808500439901341,-45.29833779008974,-11.725540492314586,-37.808394233975235,-31.73859040922238,-27.22222936912962,-41.22228721729528,-47.51937038635801,-29.28226011259769,-3.588853843337227,0.016211642916313274,-30.16943777680445,-49.469177338707624,-0.373228356180201,-49.51801675033602,-0.6534637763182221,-61.62348661521507,-30.244471124428866,-15.528757067129161,-73.5771530379219,-60.84358561255933,-17.395706193088824,-44.99094211605504,-56.43464004503843,-0.4623971558400104,-20.527203174728818,-6.182888072811202,-0.4235735727401204,0.3635139224312005,-12.867380143614561,-57.37457223613116,-12.626519871026032,-12.460053765829128,-30.467914473433222,-41.65787413558744,-1.5998711470887828,-26.32209010526388,-20.865911647664714,-19.973318001292633,-43.16248349676349,-20.378630239964032,-29.466824423578736,-44.92783237054807,-31.3540345847182,-10.166079795349031,-27.167016160024858,-2.766198016163179,-1.376197268524089,-1.2914001689004966,-45.007476794084674,-0.39909373501658285,-52.4362033535937,-12.202759075021817,-57.76992630116934,-39.023953574461515,-39.70253198936337,-0.8178940334729847,0.4224749517353028,-26.823530454583782,-23.92444107338775,-55.84356235538501,-26.064568853031666,-6.922794308330461,-9.176345534384618,-45.85037121350243,-15.738846855753856,-70.40566782719777,-3.705233802471417,-58.4117424901446,-21.2249473189296,-21.213776500527775,-46.03575551616661,1.0318867655668487,-32.48663255805829,-35.65794001641595,0.2096012648453569,-2.7039450265341602,-2.887312188792042,-33.32226677794175,0.5770700985602173,-53.49233065540701,-3.46184607776093,-2.859909950461676,-1.5269636109934175,-62.020712223139235,-32.35997450372331,0.9762881816432936,-23.332804766129914,-58.33461221522952,-17.54955196822786,-41.57815549590647,-55.66597533946981,-10.59993840898716,-16.959175325861626,-23.39557351210742,-42.274774663635554,-8.721768231383916,-2.346852961476731,-7.873852995157947,-27.98651157751269,-45.88002215431096,-33.70572289548091,0.09803253491308217,-18.931777693847152,-56.70232895943735,-59.7512995292676,-49.3696963009467,-33.40321164827556,-15.328635920336511,-1.2087090459147074,-3.6434900006590434,-3.5538423784925324,-54.4176874931975,-1.4911170326028813,-18.738422639547274,-23.8123021633254,-0.9777507950012998,-27.580644242873767,-54.36416679861489,-4.30034366392145,-29.536359012396787,-21.804632236118763,0.981987510528096,-10.160331937331925,-30.46775038674264,-13.293742905628566,-70.72977414675601,-9.11018395902645,-13.931753123603237,-49.411063404476444,-34.73762761127019,0.33710649145985494,-3.774982216138886,-10.701899808810994,-15.951802096716142,-62.98165150312462,-68.1564116746447,-2.3349724324043257,-12.561196410569519,-2.8775890401527975,-7.066648006722895,-8.635234729111348,-0.29989325386305765,-7.820638996366812,-53.032244227400454,-60.26486994977496,-37.95158684378198,-29.169937565604137,-16.877398439168285,-28.90511280861021,-1.4645925278669374,1.0269766362958326,-33.596158379223105,-53.1323372160583,-38.03418899957438,-34.06020434050296,-20.40222922379171,-14.691544570731311,-23.30333697660432,-58.26662595418404,-89.96487070922167,-13.282799843267217,0.9632314387153298,-51.401031310930485,0.9323502555742169,-42.452746717607425,-42.56823159451581,-7.573263067203621,-17.89104603311872,-1.4778381726770928,-17.324619972156423,-37.04636869393876,-27.43529197914234,-51.295901967182246,-23.767203911475164,-47.081567834204435,-13.199239265286696,-1.0211246115517496,-26.088116058976063,-10.806908061547958,-39.896799501870525,-30.47549925997106,0.05664505686148402,-22.725653225116766,-39.031297398441716,-10.304548155242971,-48.70788637055642,-41.867196583751664,-45.96193086177901,-33.834147641842264,-31.012950245416324,-38.30539804217829,-68.96242076859878,-24.512257247154082,-2.366200639801421,-31.110134626955624,-17.136455754880256,-36.59895446087234,-48.05386545800317,-23.849880202083448,-26.319493143544964,-1.2125731587874484,0.12390034301487862,0.04168797740554364,-64.56944995541397,-9.994623798315128,-28.359671503969704,-29.361645704496446,-38.359887488085775,-51.57285651588641,-8.590462512710722,-57.23419336903111,-42.03257885292544,-62.575951063266416,-59.82381297195332,-19.264145351516593,-22.638000259909024,-0.41919377238285493,-43.99231360339609,-7.873792975671864,-94.1592116163998,-55.20093455878602,-27.478703563657934,-44.10788209603792,-9.281881117414772,-5.643073759639163,1.2014559856539304,-0.1795511376265484,-53.45748202533446,-1.194895448240361,-18.92144900060048,-9.062591839706261,-48.28603656726882,-41.27897918863269,-53.10613941835932,-15.187920117730883,-8.040215085610495,-3.9334965294407422,-26.50189646313694,-16.565948669341253,-0.5805646401083906,-24.107933883460547,-34.567369812523204,-17.587197362693786,-52.64115256343228,-29.39716696323408,-35.927749744226716,-17.217732372485415,-35.616091202622755,-46.166118198415724,-10.93576962834484,0.5503476088393349,-6.221607025439836,-23.53452934326925,-25.024620310838557,-34.76623688041623,-63.42192077588933,-21.74887555582508,-49.166824123951116,-5.566857258650234,-21.426237911739975,-7.595725193515456,0.5332590064302347,-6.737578075585186,-0.9055936903078239,-0.5510956624448125,-35.34095876817129,-22.056967734659246,-39.77779626301202,-31.512219381430395,0.3119426936075187,-22.175179540336696,-3.0788020432617773,-46.670242065009234,-20.02582884357788,-11.49653718904765,-23.77499279128363,-24.45879387147003,-29.822217529234624,-27.896042641127725,-63.07331025241685,-55.566993577150136,-21.981257061997294,-17.904802141569494,-3.37466267408795,-36.46447952941827,-26.715167651498835,-0.06009071190821702,-27.13886241467144,-35.69347059919649,-3.549944375301416,-47.781128395730796,-25.95801494147545,-34.64044550779743,-31.499608579142322,-40.44452749369254,-4.796022484124938,-32.41612211161336,-2.5026156626917344,-21.504682203196026,-52.66631279607364,-8.05797402121213,-58.59915735407921,0.35639773971751554,-6.608145346581082,-21.924271305050436,-35.935357993553865,-7.288168903933252,-54.81412619447931,-28.238374635208558,-23.4347729930647,-4.985738387997392,-68.37588968064128,0.2952724686248205,-21.234180585671663,-20.88503937395473,-0.676463883263223,-47.82529089443401,-9.499244048107771,-0.42755380778846597,-16.455620774271885,-7.249508160860589,-60.67323837344131,-30.819770489681098,-14.991072230626331,-1.549133058557767,-37.16474221368079,-1.3124214604449254,-0.7748569502515319,-79.8825008732543,-4.363338575079788,-19.789354020281824,-24.34138343677408,-0.20870133221555998,-39.12908701282513,-41.71200185165495,-33.528871262546595,-65.07304948882,-44.659091458766554,-34.49434027815005,-37.938235107292535,-1.0667938108093238,-30.515772337621716,-9.905260888827868,-8.431822389715355,-30.68951902923972,-22.087236246272063,-22.37211518014976,-3.04656921195055,-22.884975388333434,-7.6731519222436795,-25.33365318776404,-14.564509333976234,-58.73901076464906,-48.27325990847558,-3.66862823104568,0.4687097880434379,-29.951467071548556,-41.918968873224976,-2.103912547775953,-43.20458827985461,-10.901382916118573,-18.536338302866366,-26.425712966274336,-11.398630624076826,-51.99302840927501,-46.98915445858727,-34.37845160159999,0.7674220677777153,-52.19872419794329,-42.962168951264104,-17.620835275992654,-4.526165516507685,-0.6910629564899899,-19.10986215283506,-60.95077194245399,-29.974640953239607,-37.67607901290227,-22.35342480839191,-18.229956864379748,-19.880822973631403,-1.222222548130409,-7.913590130561284,-21.472949355648172,-28.188111155385016,-13.048564985009175,-3.189324102927725,-2.2951273198149638,-50.73776405299384,-4.228577824183273,-27.928266050168254,0.9809783340774589,-71.62760443124994,-0.2908877947178352,-3.4937801819373004,-24.101116113279446,-58.621506129471456,-32.922960315292194,-10.248743932248344,-22.804397040954534,-18.518818682939013,-33.83857318033794,0.17569264842967103,-21.153026496065934,-11.630912488433005,0.9645263003498106,-5.008456059313142,-9.079277270267895,-2.1439598584449473,-32.15483674049747,-6.260367434667377,-42.49699826555403,-0.2688640091521446,-40.098996526152405,-39.25081108755916,-39.523270376551174,-21.938308029938295,-10.906689805079992,-54.403636095202245,-14.560650487503697,-44.304799012751204,-40.63244567976819,-28.06985491569933,-1.896031903378213,0.3684453070072049,0.8332877640457255,-14.512647589624244,-23.345870190636237,-27.700607259840435,-41.64436625720461,0.7301973840156921,-9.346210464049282,-33.82771624217606,0.1923681213783115,-58.444289216445824,-36.711747272149516,-2.4639064975621583,-26.283903142191647,-52.74311326061984,-16.313408739486718,-43.53269161134769,-3.8047670633588093,-6.995839698581332,-0.6292029775319983,0.4828901262227092,-55.123872558274165,-19.678186992160917,-9.57752984662718,-40.3665646768099,-42.4299419722755,-0.8514549775839195,-52.78977206381356,-40.636752654552566,-32.0119893857234,-29.377179018445727,-52.75415392175563,0.20831938463181032,0.3645529603664488,-23.939476335456476,-32.915365041666206,-14.527567774950741,-5.2643776747377675,-30.814512461455617,-25.76841474653812,-36.77742644233835,-14.09973263782161,-34.18561657133912,-30.04461059871336,-0.4310226110763913,-66.61495262382793,-20.250334800607483,0.5657299689115793,-29.087581235894596,-5.39018904979145,-27.092431632004175,-12.85488266561228,-36.10727493696131,-2.779241937044142,-16.670408019050377,-35.85085107748824,-39.41217628194194,-2.2014405375919712,-4.853318719887673,-48.18784111797473,0.07457069372115832,-14.074498303262914,-63.48120568381576,-0.015540864095001883,-52.079705081097885,-0.33107184991489547,-43.693748806790516,-33.23783887911033,-63.714069280124306,-60.72029749325979,-69.21584136956828,-11.462450247181632,-51.849135340726995,-34.18828286603406,-35.858346374705356,-2.5870478791740594,-48.29873875794889,-2.233479522641077,-2.1004117174180488,-26.129664347347223,-0.7830631800258785,-39.196193097086415,-13.516687512696441,-0.22259318439546627,-44.66960606925383,-9.129554300671273,-31.923349318341746,-28.37978924715728,-3.5817827040036043,-2.3598012349653366,-20.80401826325582,-39.44002861916939,-7.963407802404101,-38.23568963298699,-7.349429668944643,-38.0700777998869,-29.131531600841,-17.502008163083058,0.351044599189295,-43.30560884999477,-17.177368843416748,-13.326646743857141,-25.769305739496314,-10.057129364687487,-9.441467848405196,-29.178460840661273,-6.229172693336513,-71.65031665837685,-28.544185023229222,-6.975444116187624,-49.87971970859825,-29.837818601462462,-29.073832710748796,-26.82427892473469,0.6607461743779701,-11.731698194069361,-14.564062864400935,-44.81424382945774,-29.257033790847103,-10.791936509988973,-17.776135346931124,-46.11670397927659,-42.93533737402552,-22.44300961302048,-24.68919885255262,-1.5365924840421168,-15.316649141935564,-18.447190030477334,-20.065823588497825,-7.803357089880158,-14.255038737263792,-55.83612808257478,0.2664825042062535,-44.28711208237721,-18.21267362720296,-19.681128843054196,-39.404293846472264,-16.418982693389964,-42.31723681058447,-41.58923351066401,-8.518152042498356,-16.761097895646927,-4.963688767379964,-55.34629044668374,-13.40075144376333,-31.114685336358452,-25.768528803133,-37.85492608952129,-30.29430538302914,-5.788511445011174,-3.768913744012656,-37.70896997231086,-18.02694477853426,-28.351113453991797,-42.19636741003123,-87.16020545936449,-18.435167786716814,-15.898160966481548,-13.569704143433023,-2.439576695724463,-21.423059185911544,0.6307638702549245,-23.924284766268105,-12.62657936601767,-6.338349001461378,-22.43571881611684,-17.254044505597832,-14.13132134191104,-17.88798990197573,-46.79444391126033,-0.32551290711034975,-29.9330139983489,-33.205967029476156,-30.34766144190984,-46.0946063614823,-34.63946268526886,-2.52058105218925,-29.060174358461328,-4.353017353769788,-54.49077777999966,0.327921437273786,-54.13309072605237,-20.21408264894831,-5.641781534182044,-27.554688159325963,-14.983054167346472,-35.92070741971185,-0.3772374566222445,-20.198258183357346,-9.778119575070827,-6.249897534521276,-14.530944011741372,-7.135767732038072,-23.914702384433497,-44.868209832285046,-53.685412480771014,-48.484385279508956,-2.5354157640912036,0.40858394026190803,-16.851720020840926,-3.678249140928652,1.057827551808071,-1.766005808737106,0.6096349376578951,-36.60105521181103,-1.9145951650858155,-25.91000927456782,-11.71082629403103,-46.81941546208537,-5.40385278175874,-41.06694550398976,-29.826407287087573,-30.48480736256079,-2.619697810649848,-22.32779070112146,-4.574925999087425,-12.207614998187662,-9.793053959708665,0.7672918473784145,0.6055723185250401,-15.576186018846137,-9.85085819050639,-0.15180115035538355,-27.857729598992883,-29.180234341116478,-20.77909761208659,-17.05542890316998,-49.72102684496607,-23.02204146949112,-44.401192232462535,-25.407929989296925,-54.3101873345541,0.0916137617172339,0.8952316134245981,-30.636223807297608,-58.742818939153125,-23.61519933515114,-8.02725418704962,-50.78837433909689,0.6941074980157036,-27.6284537202209,-35.343749429444976,-43.430865350188846,-1.9649662669336925,0.5976110379833208,-1.0359939227094017,-39.06369181411774,-49.576188403400124,-32.51930675304236,-6.213820107137692,-28.8918892139104,-28.628324109407828,0.29665213703639237,-43.16693277261017,-40.01684462951814,-47.494117520400096,-40.72665977631911,-33.48302563831649,-15.261969557967848,-11.212339521059373,-61.20314055143986,-16.53679803664536,-11.538077053221192,-27.184806640122552,-21.600357169349788,-35.888457659150845,-18.508901293723085,-22.55580876573618,-13.53155271594146,0.48115670116644615,-6.213537532301173,-29.158853961466857,-71.62072572120246,-8.285317799037017,-0.6249067850949936,-27.71951182878695,0.8717983385232286,-0.9201933658700479,-60.579606568401175,-28.60397329338278,-0.766236016977158,-28.59628082272993,0.9417355311257769,-72.59344858919005,-22.483123566820904,-11.853345776405359,-45.383511220968444,-52.16899935201102,-33.990292254959364,-38.409361976541504,-39.38109567064022,-0.5441717022595274,-62.29764205298872,-38.680692960413246,-56.208454775370484,-24.92084552618482,-19.00062104537964,-47.621297268692715,-19.218411825491316,-3.8545666558841036,0.418851977802128,-51.13330182511983,0.17118728794091487],"k":[3,5,1,2,6,8,10,9,2,6,4,2,2,7,3,8,7,3,1,5,8,6,7,5,9,9,3,10,1,7,4,2,9,2,1,5,9,9,9,1,4,7,5,4,6,1,4,1,8,1,9,3,6,2,10,5,8,9,9,1,3,1,3,4,2,6,2,6,9,3,6,1,5,7,4,5,8,4,2,7,2,7,5,2,3,2,6,6,1,8,7,3,1,2,5,10,2,9,6,5,2,5,3,9,7,9,4,10,1,9,10,1,10,1,9,9,10,6,1,9,2,3,1,1,5,3,7,2,1,4,3,2,6,10,1,2,7,1,3,1,8,4,6,4,9,4,4,1,2,6,2,5,3,6,2,6,6,4,1,1,7,10,5,4,4,7,6,6,9,3,3,6,3,6,2,5,5,10,1,3,10,8,4,3,1,9,7,1,1,2,10,3,4,5,8,4,10,4,5,4,6,10,8,7,3,5,5,3,2,2,3,2,4,5,4,1,10,7,8,7,5,1,9,2,6,8,5,7,4,9,5,2,6,5,5,4,8,4,8,8,1,8,8,7,5,6,7,3,7,8,7,2,6,3,2,9,5,9,6,4,9,2,3,8,5,8,2,6,5,8,2,9,10,8,6,10,1,8,10,9,6,9,8,5,3,2,8,1,5,2,5,4,1,4,9,3,2,6,4,7,6,5,4,7,3,6,6,10,4,6,2,5,5,2,9,6,4,9,9,6,10,7,6,7,5,6,2,5,4,7,8,7,1,1,7,1,4,1,10,5,9,9,7,7,3,6,5,2,2,10,7,9,8,4,10,6,8,1,3,5,8,3,5,1,2,8,9,4,2,10,4,6,9,9,3,5,5,1,4,5,9,5,4,4,9,5,9,7,10,8,4,2,2,8,7,4,9,8,6,5,3,3,4,7,6,9,8,8,2,1,1,9,3,5,5,10,8,8,1,9,9,2,5,3,5,8,7,10,10,1,1,7,7,2,8,5,3,5,2,2,4,2,9,6,9,5,7,4,6,1,8,8,8,6,5,9,6,6,4,6,1,9,6,5,5,1,7,5,5,4,5,5,10,9,9,10,10,8,5,8,4,1,8,8,7,2,3,5,9,9,2,7,8,1,1,5,1,5,7,5,7,1,10,8,7,1,1,5,4,5,5,2,1,9,10,1,6,3,10,10,9,7,6,5,10,3,6,10,9,1,6,1,7,8,10,9,9,7,8,4,4,9,1,7,2,7,6,8,10,9,4,6,7,4,8,3,7,10,10,2,3,5,7,10,2,4,4,8,6,5,10,9,10,5,5,3,6,2,2,5,1,4,10,6,4,6,8,10,1,5,7,3,2,7,7,4,10,10,8,1,7,10,3,7,2,10,8,10,7,9,9,6,3,9,10,4,7,9,5,6,4,9,7,9,7,5,3,9,4,5,8,10,10,7,10,5,2,7,7,8,9,4,9,2,10,10,8,7,4,5,10,2,3,1,7,3,3,10,9,5,7,2,10,9,7,4,1,6,1,8,8,5,4,1,2,2,3,3,8,7,5,7,4,4,10,7,5,3,10,6,5,2,6,9,4,7,4,8,6,8,3,9,9,5,4,1,10,5,10,4,8,2,3,5,2,7,2,7,8,2,2,6,7,3,1,2,3,3,4,6,8,9,7,6,9,6,2,1,10,5,1,10,7,1,7,2,10,9,9,6,4,2,9,9,4,1,2,8,6,1,7,1,6,5,7,7,4,3,6,1,10,10,8,3,3,3,3,9,3,5,10,3,1,8,7,9,9,6,5,4,5,6,6,4,6,5,5,7,7,10,9,4,4,7,1,5,10,3,7,4,3,5,10,9,7,5,10,7,6,5,2,7,2,10,4,6,9,7,2,8,8,1,6,3,10,10,3,1,10,9,2,10,1,4,8,7,5,8,2,1,3,1,2,8,5,4,2,10,4,5,6,7,9,10,2,4,6,8,10,4,3,2,5,8,9,6,3,9,2,3,5,9,6,3,1,8,6,8,10,7,1,7,2,8,3,10,4,7,5,9,9,7,9,5,4,6,8,4,6,6,1,1,8,5,2,5,9,10,4,8,2,6,7,2,1,5,9,10,10,5,3,7,5,10,3,9,5,9,8,2,7,5,2,3,9,2,8,2,8,6,4,3,1,5,8,3,1,9,9,9,10,8,5,7,8,7,9,10,9,1,8,10,5,8,4,5,8,2,10,9,4,6,9,8,2,8,4,5,8,1,6,7,3,4,3,5,3,8,6,9],"x":[1.6671235558666053,0.5171341018854769,3.964590832476854,4.605133837723714,2.701377915756268,3.1358560339549237,0.09054246983073666,0.30182482507371544,4.464965045104536,2.9778428479007313,0.4351099228222166,2.7283422619216435,1.8086914297461054,0.6194449060738827,3.261780662903666,2.182636823288423,1.4639037298760371,2.4571587391288388,2.830093476533244,1.0434708189738162,3.25993863604264,2.029382438283569,4.556952582627495,1.384158797246141,3.3741518912055413,1.8318037484696936,3.353557587953253,3.699436165743344,3.1203370809360975,2.8661354750935066,3.9232337258009653,1.6577101239660919,2.0986047745973413,3.9529788556342993,1.6359920947039197,1.045532519525848,1.453421975032303,1.6218964499956456,0.500644789173168,2.4088847692850357,0.16186291119608565,0.03329086816378668,1.3876993385476788,3.3740839243971665,0.4280952355493406,3.9460534180377693,3.1847254719156948,3.684691828068065,4.484401466918362,0.8213558734698545,1.3585144824778406,1.7102658797896908,1.1199728959226751,4.66169215152191,1.5847965735581804,2.4554915591966098,3.7680057354875665,0.24003592074702151,1.2052995027717628,3.588215373903548,1.53914371807785,0.39958876176079516,2.169180174791091,2.256338629269261,3.104532104961258,4.399835318993077,0.3108936894549108,4.731540737786295,0.7800346804607816,1.6841572392275672,0.9683323107015596,0.09809457453414216,3.578856297403238,0.47664337559451875,1.786753739005632,3.780075585031489,1.8518443475711899,4.213373493452851,0.16080376292017085,4.959996647121924,3.93807351695746,2.652978711687395,4.639353680092761,3.4786485000728993,2.014562265337625,2.3055262113528863,0.9285366743327073,0.14833989816774085,3.7397689882490015,2.3737302192879897,0.8234246314070659,3.3328687444707983,3.1762623678355495,0.9315035750256218,1.047586595118617,2.7684860951879884,4.993952638825705,4.922433055093033,0.13084554759143163,0.8674306800634501,0.820792523434003,2.826427664297755,0.4423195133436242,1.6322998191296212,2.138967024900383,0.08303812033703006,0.7033993917949666,2.125870744232433,4.393536973742981,1.7745649138012798,0.14679803174717176,1.3520255099445022,3.9026132809076755,0.6267034131648819,3.0351702449535423,4.084624399800453,0.8732857816212602,2.96568560109454,4.9421373006815115,0.9053878360111944,1.3502195542148299,2.285513355561343,2.2342491857146642,2.242836691659277,3.802095053341583,4.731025292821548,4.984654308690214,4.472943910804116,2.061584901554582,3.044499391358012,2.2325060306379774,4.14917677158178,4.5061705104153384,1.9842483068571304,3.2930566007976383,0.8216963560358581,1.5841070683780822,2.8645044307985144,2.604813124891854,1.002517385694729,2.694442477145491,1.624683475112202,0.7037274975297736,2.3959691143032877,1.635443375660861,1.900948175325382,2.5570851776109924,0.5342563292448788,3.877420036129182,4.453459843180694,1.984766024828749,3.325711601298239,1.874061865236779,0.8082711222051098,1.9422915749968217,1.136181717686583,3.303775457530538,0.9521260961962852,0.46718569776533103,3.1569481509458495,3.167025317819061,3.5911786992043315,3.677766727569595,2.1105431405719832,0.5828636474031201,2.5660222185778303,0.0772837624497591,1.4003582159820949,0.8546018600884697,2.8325989312847257,3.0164515351370924,4.791909093869818,2.8663278557555993,0.9419069745683395,2.08473147424023,2.9856952742913334,3.773544280474639,1.5802574220156018,3.4229476908807186,4.0208638773252545,0.6213514474097503,2.1242287418141825,4.474570615010495,1.1184872899649623,3.580351456208356,0.7083885043263027,2.194049471529839,1.3534679514308545,2.6091146089833184,4.603436982854881,4.585831887848676,1.4304660838496408,3.457957798878719,0.9916137362467881,1.4194947138164216,1.2347956313123887,3.366707917021067,3.250973709369427,0.48416441849622127,1.6608168014139357,3.913930338137291,0.38778909039722254,2.304920042283427,4.46491368962608,3.069776413577787,2.937906943237648,3.8397926533861093,4.08348258731597,0.49029002271944067,0.15416647106324954,2.5869822464431147,3.246110569547087,0.4538495650957475,4.4099831053848595,0.5016893614808815,3.6822811314567794,0.6976189576911129,2.373033670657075,1.5564159377122666,4.423652521097966,0.07705997636147655,1.9297815273622398,3.335255832068432,3.4887757304343356,4.426756391285763,2.5663683162120057,2.295379984904513,4.004687599703127,3.8099281371451577,0.0430656782115435,1.4222356614927678,4.288813921636697,1.4883017334900162,3.8642858005873313,1.6536204642427188,0.06276945113223742,1.7824748816598612,4.414053269970257,3.99908169718406,4.689727877679797,3.890690329057953,0.7571299188756075,3.4343811565589286,4.953189263297398,2.7643291648719526,0.7829962596335049,1.7261913781962535,0.643513604876983,2.832528891849143,4.9055856445631285,3.7482399065962135,2.213358089528784,0.5975612096523941,0.5431960080526865,4.023798128948118,2.662428452182506,3.8495413445688618,2.94287179305762,1.2633530580746222,0.9790501982427646,4.168821148820678,4.405256064429742,0.5013400831656678,1.013510299006255,0.6614372258473233,2.718273816042255,3.4581680675062687,1.1290187554251685,2.324137707148574,0.0431760444322149,4.719675972920734,4.915135123234773,3.190882610458404,1.498819063011071,4.8522166943279155,2.165350921195887,3.0333056012887316,3.0636290632922236,3.0089171517273714,4.927377711719317,4.0168601245396545,4.21161750134816,1.5813930128566511,0.12320030919589442,2.4423623988487444,3.366471055327734,0.8849368352497722,3.773369020368854,0.6506682724984614,3.4696315093949606,4.082756472184217,2.014078177798473,4.59377797181967,3.9423655148346537,3.130201192431543,3.3895251314621655,3.2990183870166767,0.8088359680681834,2.6122992688979885,1.1935924987387436,0.5430092233369388,0.4418934901761562,2.036801849842944,4.324992311062523,1.4638855738804668,2.11384634547351,4.0551519692545845,3.7932455476949025,0.7704356091254816,2.5696678231782757,2.0317701055926496,2.231400782641334,3.695056409381867,1.557981571852537,3.3571791363808012,4.344377769153603,2.588579375225759,2.798255942956981,2.8392198201380845,1.2093534790188365,0.3958312163445188,0.7177872980922873,3.790297279209238,0.8131314578892457,4.038806704792737,1.7379147302573905,3.336323443251116,4.6309256234916685,4.249960407300183,0.8974165374660281,0.601773153598476,2.592580013615512,1.3584348909365884,2.981748900775192,2.398630996106015,0.7549004103908619,1.2245827978972645,3.9191781916229393,3.438186299448546,4.758035431700964,1.241811939142855,4.930943571269947,2.523942309422033,2.3455602565329228,4.119253926533858,0.1898999994232231,3.777777323894762,2.130715184424008,0.32086305447497243,1.1374206721322178,0.12601245765096913,4.487530011514904,0.6255392164015083,3.601675870281933,1.900243781032892,0.9761705927440145,0.22808784451497477,4.972879904640552,3.357354088063318,0.2930083618566204,2.5135099065048063,4.330544489261197,1.6889398312142756,3.299331604070267,4.244671340240002,0.04141850430185001,3.0357312477347795,2.441396355035538,3.0494696068988314,2.7147411019705805,0.7632744878102249,1.1971158585161024,3.6966868662690775,4.102799920005914,2.640232427190732,0.6480071401640308,3.128598302686325,4.394671722946823,4.0679051747647215,3.8233504650751815,3.983679094814927,2.467894756006004,0.48281756269607956,0.9000489895122665,1.037524665666909,4.467385735928985,1.3558088643156974,2.1713372015558594,4.368311606521091,0.7269640332205352,3.7849734758418094,4.825429074666943,0.724603832827384,3.0664041367295902,2.3637423956744765,0.2869785279604753,1.5707471549236929,2.63553464161727,1.7728273626071522,4.787780800601899,0.9736759039097387,2.0014597107800514,3.7632059502079427,3.0711677497225587,0.21182511330752551,0.19417100454498515,1.5994061567447726,3.442009671565992,4.086458799053348,4.754132329335688,0.27299814429749714,1.881192351672314,0.5251937572851295,1.7212472256084033,1.2189231613729212,0.8595861214653466,0.057132742735139797,4.915721677125316,4.779121716419258,4.040313130328663,4.780645804820311,1.8691233691077735,2.4494545972376915,0.5017427757062276,0.29866662830225654,3.0322210371279046,3.9245252310811765,3.336873177097436,3.378840053138681,1.2662705206854252,1.399441155448966,3.1239578459117503,4.246889498474713,4.976281875242813,2.6672990548521924,0.328214890700409,4.028768559962694,0.3342672791354029,4.0489166385770865,3.06298991858742,1.2219549244469219,1.8039933020473198,0.1833860227607087,3.0510942679711195,3.88706835438994,2.207491680185445,4.547582508257065,2.335223625736967,4.910286149280388,0.9408828253552537,0.9443709542941714,3.4707477177995827,2.251463260522477,2.9912676822737003,2.5673235338304634,0.8468991119814173,2.2222737032360484,3.9228979501825476,1.3960490233492229,4.3205043307905635,3.649888105548995,4.667139823069588,3.8563741471520085,3.0774649328089643,2.883704629180329,4.985500304477676,2.67147664544133,0.7602225585777111,2.412844486735165,2.614150676920828,3.5945406992294107,3.7860924651146934,2.6602813678152923,3.2325577296694483,1.1977911564117505,0.3011736387590891,0.7067528360597419,4.890374166638814,1.489454859662248,2.927538537879043,2.6483676215168828,2.4132174427715825,4.17888893309742,1.2917312753472754,3.9999208294926736,4.278309677518011,4.6723396042296255,3.9311526715698033,2.293270201135301,2.8851224901823325,0.34399768224580685,4.287017692689153,2.2675539210352302,4.9239309039923596,4.598677955712905,2.2119514083455813,2.4879899423053176,1.710093481763394,1.4796801072275034,0.2630184877356123,0.5976007807886086,4.736052231804351,0.3822193083915326,3.1487186362409747,1.6983606484280234,4.040800037969162,2.8259188268731017,3.555760621493448,2.3391337261667666,1.2398150569245048,0.7234866140833784,2.1042267068779608,1.8342580658209262,1.0112281739609952,2.7104298666841,3.000532983284161,3.139253329702992,4.594507159183371,3.647493075195738,4.593640635536538,2.703804388067028,3.1130047507974554,3.472571289484252,1.341504998345101,0.6456513486362392,0.8377805662485927,2.776232518194137,4.441074849895218,3.147467492877384,4.626947775832276,3.1932627241103573,3.320058933160477,1.7403607662276155,2.16785752086855,2.380585154821444,0.6034675648039356,1.2419424952470648,0.9284137693469086,0.8573164973153335,4.24657727852023,1.7791886693943604,4.164318306428127,2.323758869543772,0.7283953088763873,2.068922655619101,1.1964001101927502,3.991791644591882,3.1516770636562272,2.631523825149069,2.437176954751714,2.177921456416141,4.001846952892665,2.7045102164633397,3.8725751282400642,4.115078246574154,1.814270139681472,2.4094551342486223,0.2975560996885829,4.177837504574184,2.3948112787405385,0.4548696504172989,2.772207850495888,2.956634282721664,1.2567263375701099,4.741696766000247,2.838689875110326,3.2436574032951992,2.987032522767543,3.4959550379445026,0.9387090088079897,4.972660916232847,1.1504251252939113,2.444482803873518,4.855775417035771,1.3679331961986096,4.875843922206382,0.27905510540725875,0.8966010161500748,2.2096499059284214,3.561064302709225,0.52339991021773,3.78087713670043,3.832061042100933,3.5507902174935815,1.06022331658975,4.829718114980413,0.566094391351154,3.4210201340704804,1.3924638641255471,0.5036508927008398,4.029097469116691,1.6630092138862185,0.2611334101624141,2.499665086743498,1.5200176959685308,4.9703365807832665,4.779127056561395,2.7044245216791705,0.29865926650689545,3.1064803544260777,0.2121973204832006,0.9937235292068292,4.820577316604432,1.3190607795230391,1.5027293488731075,3.069723894187115,1.0014276116626386,3.982018723616416,3.4975503594176747,3.259054323158974,4.833254952010754,4.493543028825654,3.917323395880362,4.1479793538415795,0.23573528260561138,2.586029272387298,0.02247695853602849,1.3791264729118347,3.2280462016459444,2.4571514131581407,2.4388524893263206,1.3620529038921592,2.525502715125417,1.814400629041072,2.3903754592536397,2.15072500866752,4.376188034653852,4.825244744445344,1.0665631960346944,0.5352912577362834,3.774146065841675,4.867481178776245,1.422269692436574,4.337086648857999,2.9715881546021583,2.2282588769228817,3.1886094904932385,2.399032763499529,4.649124935760193,4.7560542917216075,3.5898535891691297,0.2908019223269076,4.277327606382366,4.416664327037303,3.585585365511731,1.210358801480016,0.9231243344705387,3.164819495279745,4.188100212872631,4.285149896859728,3.5163180498587754,1.43900845969552,2.212335119797805,2.178408722397295,1.108156274397668,1.030577427437277,1.6321444410535024,2.801274012713859,2.5891788074719067,1.071035600451028,0.16182803850862015,3.873120690277072,1.8722844122897897,3.6152874050261987,0.3816554918752646,4.44415189501239,0.16765909024322068,0.05092219820718835,1.757028565307045,4.61734988927998,4.913471951798154,1.6143351489537217,3.11141417952327,1.1668778632571697,2.695191703178219,0.23097877593277416,1.7185511550792754,1.832292814850175,0.41500378268742755,1.6878049089093528,1.1029789453375127,1.1272714260551875,3.030507487809182,1.3804065060661763,3.6963946326114394,0.333036183786114,2.966401238013676,4.840776557872859,3.722984214612197,2.6225096904283673,2.032620442464177,3.955741509010511,2.498761757646645,4.33679052627297,3.121021735329018,3.1543565503945805,0.875882331359461,0.2938442189219914,0.40683351982451543,2.82631123524808,1.7631811217126114,3.240507849633185,4.19286358695894,0.13174539445290234,0.9811526227280409,2.516068504370109,0.29363860277734966,4.159013399301363,4.947341913650187,0.8088677379576548,3.2418112708953553,3.0789363144157447,1.3573080859422837,4.084079686530049,0.6928301258637815,1.5473193713984223,0.27061892433680734,0.42680366997228103,4.82818904404922,1.3936767629552516,1.0409572269721767,4.638733831743966,4.3375781938766576,0.3897043195780492,3.3134820271684484,3.6100864353045603,3.0614535115001953,3.032194147102667,3.778079014200909,0.5800472865268214,0.6789079530959996,3.076665639674052,3.184631450722665,1.8799585035237143,0.1658359145239141,3.930774102652641,2.54273462793826,3.47160859201007,2.691093197045217,3.4731359910928408,2.9625215774699343,1.1677739635686035,4.749370317125074,1.6523300958140652,0.5869250439615392,2.457375570172932,1.2491806606662026,2.9171889376279916,1.923270558798621,3.107441486936844,0.9031408211137615,1.3276344825577913,3.549844150455612,3.766634293786999,0.7037008339084516,0.6096108666370847,3.6480244426836395,0.266973292037207,2.157973564883301,4.993376191482324,0.22036266322208786,3.5716085296323454,0.16098320675333344,4.795529006318432,4.037949305651212,4.937036351916751,4.8985103513805015,4.18181417194713,1.9940858042043086,2.8072732452150118,3.5927267716608036,4.1498036016619135,1.1627662789749305,4.9023495822379894,0.556526588368641,0.7226620991630561,2.72465247376192,1.1851273932634243,2.758119001759346,2.4580044886539287,1.0805025058818274,3.279989714607222,0.6472602077942846,3.177270735481877,2.488703196618408,1.004930617869364,0.9968020623531104,1.950561424872287,3.9350437246394057,1.2042356962174272,2.9766253570173817,1.941263399930292,3.9739657114857865,3.08130527983163,2.1131055857590155,0.5632043712927326,3.0481096109228103,2.439672308394354,1.7186006140889531,3.959145625934055,2.161160407628555,1.6357086441066704,3.005740214865634,1.07828037272786,4.388712629847536,2.2271388887384145,1.3701399708205853,3.0617727484226176,3.0668061660360566,2.858869292596528,3.40218016393938,0.2755041125886737,2.665466397202745,2.78082490836454,4.815584048895602,3.222016249001597,2.058623608563679,2.161621859766545,3.268260453112081,4.544210216628361,2.5363918851450573,3.609593399957589,0.4101049417943292,0.042570726497173084,2.822656145640404,2.935320458486604,2.4822448327956383,2.4667217098296668,3.7493971064473888,0.8411543192282422,3.981597012196211,1.452938378878904,2.4706778321241982,3.3920682288955675,3.5802311295452336,3.698852762450855,4.342828625279335,0.8783811959616183,2.5838573175085444,1.3578761800963535,3.9138998250827806,2.7809088449455457,2.737625544026078,2.1285382592668647,3.1682178186445276,2.653825728616912,0.8692877553781353,1.2649659445886463,2.4640600809596327,1.9802760130110142,2.809298782778482,2.660767650403826,4.893779145407592,2.3428087860112266,1.726706745240283,2.093185683492642,0.638620251741896,2.493843138935099,0.09261544801946187,2.4331714750814557,2.5961962545289374,1.311513558555727,2.608755614510568,3.5463139082471584,1.513409562285738,1.7742505996783475,3.5050846798656465,1.0210153982808001,4.337160050586331,3.358733654608992,3.7742213733223418,3.237912773206432,2.632676908399403,1.0220201874080925,2.841227255463721,1.2840396805763665,3.667159817533885,0.6122367993992084,3.2848618047660496,2.6649409228373067,1.1286947995520291,3.7610558917587444,2.6405480952644367,3.8749304981246313,0.2553636407403359,3.755557653618152,1.5678508779335232,1.7081771852954253,3.473245851720843,1.4578043595050816,1.7920255216337122,3.4534683084402507,3.5401066636768164,4.593935797554295,0.5446637983830127,0.79482237944551,2.585935995277051,0.12915137909634944,0.3001002139410047,1.0852824612941014,0.6352797172451674,3.4522825285094374,0.8894672960608851,3.9124941134021016,1.7622846709729878,4.62779687816394,1.828904359952217,4.54853461809277,2.368497310449067,2.444213324159864,0.3433439146096162,1.8810713625232889,1.1950006676422964,2.3253225617737128,1.1330036161881374,0.39470147569111713,0.6405618929391077,3.3885442058713378,1.4964966750812891,0.26019315943975996,1.906747906193117,4.061642366871608,3.3595994176807578,1.6402407447946987,3.6728158618348683,3.3512391391591834,3.587374673488096,4.385506640035112,4.566547345431486,0.6351709900881664,0.10079671130573731,4.542769595733254,4.918951012902413,2.8813526422321365,1.4775537021129892,4.163040435006482,0.37827060272416,4.310065518410156,4.071128011171531,3.165693544198774,0.8947527125076338,0.4729883118898015,0.3091760266163668,4.772649775581209,4.991700089740792,2.5833251681556746,1.805029151833898,2.5057128954613574,4.386146369484082,0.5216201913446739,4.906712792581907,4.119569168916981,4.00824356751086,2.911071293190426,3.31082340158673,1.9477798139849156,0.8992544284531367,4.628038046568425,2.9730666235693928,3.029990916593226,3.652095813176662,3.3948103775707485,4.052101645214287,2.8312574033298645,2.8380709468709475,2.3698651587801525,0.6360370814784222,1.6124596770515986,3.756675380425306,3.7404850795784492,1.8761149434968272,1.0522058575237536,3.3858272523395616,0.44862732683843,0.5913323852078101,4.619777523274352,3.983683209019647,0.353395415649006,2.8937063665483844,0.40202095370690194,4.643022136811651,2.045505515062749,2.099388340216497,3.4914037301396106,3.400667214134876,4.13999676248764,4.9039490011250075,4.054980640011994,0.7437362237341416,4.721603700157129,4.469859796650489,4.050376138675479,2.407611846350044,1.8537203355256948,3.7569811436486065,2.837701568194845,0.6772738833977732,0.7313931281136232,4.831584008961763,0.6394694764289899],"lambda":[11.146623845052678,19.296643028286134,18.224916415496924,13.657688281788278,13.710511424810763,15.085286905746884,17.890824685024512,18.46763482796664,11.624425591799985,10.221126493351704,18.90706923505742,13.70301178281878,17.759178909967236,16.349766741758316,19.311880493477855,10.329765104889628,11.723361366392904,15.677207150602598,13.101193468053447,19.62575485352812,10.354683022946382,14.148047775806546,14.236092647664025,17.19542856469313,19.807684293426192,12.927857495785116,10.744400230145528,16.225089998716697,16.068933653266765,19.057789210752176,17.827207085197074,16.422095703830337,16.908239734093215,18.25676809071292,10.182941145722953,14.73285215487637,17.40954685916648,14.887493766980677,17.686765041680253,18.021783706751858,15.309898445697648,11.944597228741454,15.959489729521884,11.667351696652851,16.41515360941473,10.024971664927886,14.811793877419646,13.085795900143742,19.287899325537854,10.673717155288465,13.906631696555893,18.74439572231422,17.42080654087315,17.170352018973077,13.353672689653038,18.22408326578552,19.639742792005347,11.856062847588111,17.63849736286771,11.69653645394213,17.925498179641494,16.774534441609177,17.663135663493037,12.771259523073207,10.428131591128798,14.247063647620282,15.336940526335304,17.617809825784338,10.553005504579332,15.258599728275247,11.6699356428418,18.55170052963502,14.942225861569762,13.634666089771905,14.909076641982342,18.696636223952964,14.81420369832721,14.538867491406897,19.978323869398356,14.995774748817075,15.93592068691211,18.87600139133799,10.604322722917896,17.74209080665986,10.508335959957941,17.945637919334146,10.152992591348616,13.27648354168376,16.292050288686504,11.192428133038296,18.386801660680376,11.862321206085479,15.263500559023807,10.575676195970093,19.047178739867263,10.454808562576357,14.278186106952527,16.086290256717618,12.569755225822714,17.671781579676377,15.040938772339466,12.980198363707839,13.44196989077409,11.76895113616444,10.028422969039152,10.813821539012615,15.45390843870409,13.503292008115205,13.677819284309326,11.88531503659,12.999686222628512,10.352480816483418,16.587076381606764,11.524194333847692,10.383502646608695,14.738640920643068,18.26559228355665,11.84166908800539,18.12194528691562,10.19485465642801,15.321707816214987,13.331169512026971,16.51401670518993,16.5023225748283,18.7295404140436,16.96811667724091,14.935754392483078,17.446610368371697,13.70460783293359,18.504601964388133,12.11664701301441,13.36848026038772,16.28153070401467,18.89210023323819,17.67410740011413,13.630601131883353,10.883684495133432,17.285881166675512,12.88924614788338,17.898412139763572,17.218699658078535,11.788440107800627,15.509087883296251,15.496793100327078,17.16362349871094,17.970426489796978,15.043355386952317,18.888856655684812,15.464626123602836,19.582741038546175,12.48310340931365,16.41707322389185,10.481287551470473,17.740352395921576,12.922409408450129,14.960527964190401,10.427291081561911,12.734197555964453,19.57900446473468,17.56358270479975,10.385014215161604,18.150289172461903,13.82696674324134,13.54827119849374,12.758401773972814,17.54351805842791,13.779401621104384,15.794507877199385,18.794850345095014,14.546196675867888,12.611789569068412,15.643599186314766,10.564005590441818,15.295229096385333,17.676121690931243,19.634145374143714,11.589407523449722,18.114633337256492,19.283672234864124,17.557002825887704,14.558617577503767,12.074643776930296,16.982632550140053,17.76145563838654,17.522541687231453,19.894735630355793,11.78154537188858,11.826964100041737,17.434691682215437,16.10934661033439,19.63833560801892,17.04296728777969,17.09694352264943,17.433019071316885,14.411900164849616,13.500650019323157,17.39462494315005,11.1303130299891,18.495210023794257,11.374194750350702,14.160576245981531,13.690694967102498,12.757411595216134,13.006652796693778,18.71469904134235,16.784000993225796,11.338721610415398,14.602557564581911,18.561655356884835,15.023954153452518,19.24269121476926,11.25079517677029,14.209553540201473,14.228515705130869,13.635025538835706,11.801691125228377,18.485329848252384,14.788761416314035,12.788779300115948,19.661504491735677,12.695346043070419,15.825393430202038,17.02106775474237,19.09933718122889,18.02029745550743,13.529833048570607,12.416681386132787,14.3113138509843,16.9814628714766,13.080405406690744,15.690905353384304,15.917823280025535,16.49269325076302,15.775911666554567,17.9578483107478,12.043353035351522,18.15848819240844,15.126048733181637,16.67331969970869,16.119907274759065,13.332462878236873,13.24552630867526,17.86319264894744,10.506047802999014,11.34965780963945,10.998721669683283,11.509586961748738,18.576967835613857,15.363687147926775,16.76032816541736,19.24152465332694,10.637851236107236,17.517652208225556,11.826002084513632,18.05272937584482,17.614534186045532,13.477604035988806,19.32862541522136,19.108164369353524,19.907744510867477,11.365016288119133,19.698813289556263,12.340252301378062,16.342244808030635,11.497602233076849,11.89764739590446,12.064916395518958,13.252722718896086,12.382328565013019,12.046021246094247,16.64121689117955,15.338058267910807,12.514389394139009,15.307143568246298,13.163626679174305,15.316939244685397,13.317981995823825,17.628339322739393,17.623215430358286,13.565867207179767,16.561947851278344,12.576355225871254,11.069679274145098,14.43570682691397,16.222586654902102,16.728887759997935,13.02890049656272,13.818966148295733,13.449268154578903,19.84161660545206,10.937319093298308,12.949737965506538,16.628639870864788,19.010713062188078,12.30200130403431,16.257385428114382,19.261637368952908,11.382488744076928,12.091294142751408,17.263525220696746,18.69912503617022,15.877797883390802,11.236445795457202,18.49843423867543,14.09464382111654,12.589511151987793,11.697916193128826,18.456246050981505,11.34555178311709,16.805123181498953,13.155259144541336,15.039516132405007,15.9865345153482,17.001917133236084,15.924629020316585,14.636342054950662,16.890588519810017,10.279572957801674,17.922175924052283,11.020498219448962,11.282446589555992,18.106313386320707,16.838876872760917,12.862414202098122,17.09299165736111,15.267085344873575,19.4558756268491,11.722131706233192,12.303920078882648,12.651491426824125,16.455851320013466,17.784842056028907,19.81002503498607,19.728566002460255,18.887532511160064,12.518175669257081,15.473831560619718,12.340145473367327,11.083087341979251,18.507164196275006,15.878183548574054,17.508983431016873,15.627955425109105,16.848671215988375,13.595462105980117,19.55307826773773,12.509339666622338,19.897342634409775,10.402284340474864,17.103395911074315,12.535182920916277,12.861463392576905,13.107576326569315,18.67270182723349,10.498998881251493,14.21743648984342,12.474882782957117,12.987381904444923,12.403541195592025,13.588278921671632,17.582912532720993,15.90389956127136,18.3669450783384,13.388329576129092,14.722066736840642,13.411499241571727,12.50997759560944,14.304901075138703,16.049033404539646,10.452949667665468,13.178967242126724,17.744696297538585,13.947358081763621,17.64748942874931,16.418857987987238,10.140948591246396,10.206177667396247,13.494665160962647,18.132099099893033,17.205398106904155,14.547635462995936,11.300418096195205,18.393066083326392,13.159824323470122,19.054778409955855,15.906503653182169,10.979249250982388,16.846954999599443,11.059909774530439,18.880612855692792,10.33689680957752,12.643937184748612,12.450597519373625,16.76531608981564,17.018302665927834,12.597798088077043,18.839180503803853,19.991660212546783,15.741478958609258,18.462564987749676,17.388933091536916,10.88652248674715,16.70318220646659,17.941195135697086,14.073168075487851,11.8353737954154,17.824623057504837,10.030119913151712,17.147621618197167,14.90452337357312,19.41842861101257,17.39070612030338,18.316946134968877,10.294063032897256,16.66744987863325,16.447577918082253,14.861612437445707,15.814928663985937,13.1491157139079,15.66180201018823,11.019149647051329,12.025372967966161,17.848973650354843,14.96722959169925,14.471237859929147,18.53159087747946,19.225292478617373,19.752105204578136,18.106468716649864,18.412543766687975,12.290909426125252,13.347871820456163,19.073383616832302,19.59702272924562,11.747565974032575,13.911963620145196,15.309968072676972,13.314376788774407,12.06027034915011,16.0765622277643,13.819903203584822,13.096342848882232,17.948516715834216,10.575106376054721,16.019011842316996,19.10514777703404,16.10969671694174,15.156339938584049,13.405474597310722,17.042447788180166,13.96393094661056,13.583323026873757,12.515725566674764,19.53001741823912,17.697854447507666,13.50239372729881,17.613920828347535,14.568611111612132,14.471078792078853,15.681539792788362,12.155153398872509,15.502102595602508,13.30942647122682,14.894127903027837,18.730952428960414,14.367136659543526,16.22051716567467,15.528134533277305,19.155041309206027,10.582531879639399,14.434892120675611,17.001043630990107,18.41335344759655,15.37318295478282,12.094225797812372,19.018907541191126,19.265652741790475,18.505700771960413,14.66036220610726,17.102180203568604,15.669493629953697,17.07152391882024,18.257113959455715,19.987009418754358,19.98473853275336,11.297767280412529,15.671295793090607,19.58600238769587,18.018876340324326,15.698468551090421,13.052515925873378,15.208626236249607,10.553879957447457,19.72839843883075,12.553816518389917,19.087856945081477,18.909869890647172,12.118436515008908,13.14148740775008,19.699493872511677,17.937964613323025,11.808635198336027,12.000762155856568,12.208975136071203,14.297171483328677,12.576183154108943,15.578968729130061,19.6566797084173,10.902026252228064,15.727361908110034,19.935907623117,15.556701882772613,10.303013200647094,13.012105340275271,18.18355370080223,12.35837225173574,10.369639004758437,13.67832582798778,15.204267981605957,13.723046645956662,14.226834424890471,18.017944835382394,18.775232891670896,17.27945512517991,13.292093459175565,16.134761832744722,14.34833535351278,11.216895468994618,19.012149772240303,14.281748217399937,11.76076546136504,15.63721574434162,10.957796490809127,19.390315910750573,11.264818183240132,17.72454313276445,19.986270552191492,12.378592778551925,14.201152933784456,11.19730776123057,18.97886693565313,15.696870822292045,14.718092017290129,10.76836498410689,13.592194397796,12.96484793911839,16.433713626417386,12.637595389304737,12.371957882166226,19.249520788223595,16.644527318226242,11.672603525930061,17.496872947322665,19.965890573725623,19.625124258050015,17.08333628482131,14.698912054197306,10.419700240434144,15.268330497129213,13.706380667999076,10.898129027518497,14.998572313747056,19.020688423488515,16.656578792102447,11.432717990655842,13.257738896787107,14.514270160809113,17.996381128583685,16.83545419949887,16.331377159881836,11.812964436409716,15.243389988116245,18.867753953942874,14.227338598792993,14.175069269179989,14.156550116548516,11.843207728866558,12.963754864966596,12.572161426045863,14.367124717416397,19.610711897086166,18.145505368435067,14.086183971600736,11.103664491743402,12.795104530605418,18.415460195132393,10.192933250410265,13.254973279930287,17.034765699881486,18.61201962216903,17.2610524359143,10.074053522947509,19.077989980533065,13.422541606595914,14.366062662731043,14.993429235754341,11.897470280242647,13.834772870604144,10.00220198278683,12.783898209349028,11.281540148595182,15.273263699771402,18.90937722681607,13.320736124792589,17.228495984852056,16.099788682445052,10.456028898968114,16.823392222054956,17.97484981630988,17.900688951878514,19.398837179743744,14.076128532420109,11.174166532684879,15.244134722126589,18.253087685814002,16.55048782033975,16.98765543892491,19.760238266313632,14.070204599583587,15.574337430773342,13.845336071677947,13.428495828391513,16.412907035843368,14.157003034629149,18.592180646680976,12.610845892934538,15.832121888815955,15.531992699546382,10.899579207030454,10.313529416943162,13.686485637960411,14.38583261106295,12.421396695603605,14.826409901161846,10.605486930394726,14.300192828740293,10.10180996185025,11.26307221349638,15.918293244635908,14.929765929950996,16.498817248432132,18.848919947816356,18.592331180607697,11.155811533008276,11.315628411498711,18.838900049668023,13.394274965184369,11.556377661139488,17.907053072197318,10.337069244536066,18.606405823647364,19.946727267688928,12.016104610293517,10.192040558612753,10.685868512050018,14.935156603125346,18.716348303055696,19.384672493425022,12.72473692608705,11.781532466132665,11.446558880875845,14.842505388411745,11.463432393517197,14.249329902226224,16.85271396344723,19.38941875048139,19.43077400910871,17.157762684077813,15.268332901052283,18.19537931300337,11.161430967348425,13.665546428999933,10.921315286962903,18.364598538184932,14.929053426971837,17.84927492710846,17.535416571309632,10.476687437950735,17.783857253167614,10.798372131675665,19.07006619577851,12.273572428317934,14.660913296492215,10.845049487722317,19.212506701666186,10.336707114903422,18.86341677722927,10.046637703245295,18.139506160378126,14.495461690496349,11.124375283904476,15.486016708524204,11.636587926938242,16.265136054184754,17.183807795581643,15.009045968602095,10.328048638352879,15.938888606197558,13.342156273945712,11.638882588955312,18.450914474057775,15.85311325919351,16.10305580605579,17.567314267144475,19.81703635616943,14.50771174607529,19.70626152703413,18.14346115682772,12.912255489290139,12.556894697184042,14.640597430298396,19.42247353946845,18.39485158763718,14.53599539078536,12.177571398154285,13.853220648689748,19.416102907650796,11.405327187378187,16.587872956724976,18.548730826776477,14.358245367053012,12.601300826180289,14.624127598324785,17.68410666563649,16.782990679231702,13.034503502150043,13.51235095411436,12.706632658271973,17.57956626414598,13.964504377363426,14.065660946328231,15.22092018079306,16.63150892977154,15.635163944695638,10.93496140629971,12.178006359224012,12.486959615334627,11.292034504880553,13.45103728979488,14.179323417340656,10.949421419185782,11.563733771838447,18.944482481041227,13.846106749849511,12.550178738496022,14.371929781748234,19.412778813438578,17.40080699298514,17.204591029259532,17.421036870247413,11.616898625232853,17.041687436860236,17.176321297410166,17.272462426290232,14.142794445577922,12.043491155838325,15.050573238166002,15.725493207615822,13.275616043387213,13.230269561798217,14.95014842209844,15.346186924091773,14.030386421766522,12.379588610149048,13.141136203593764,17.577718262945112,15.226567502600412,19.189587251572163,12.733246087399685,19.528200554508512,17.05072153918421,15.200002148361637,13.917289751302075,11.873478511383295,15.402335255409369,11.004533898392324,12.88590028129935,11.218470270568965,17.829045995599774,10.44135873413498,12.002580604003803,16.70726921457161,18.623041826829155,17.052614945542814,19.28112391864083,19.781894968668567,17.59371101015654,18.977412926932097,13.957045675112397,14.461595793189543,18.108679093651606,10.208920927858067,14.107197571905079,13.330755485770965,15.585238918458108,10.693554131595686,19.499848239179613,14.13762786807313,17.466889584758373,12.853190580256808,13.410358447422642,11.565697360188611,13.692340812026684,19.316837170906563,16.97122648269208,19.495872636726297,19.49329001181428,19.717010663344002,16.122240092489342,14.374638879415759,10.471502215369156,11.20871483328709,12.33454800386399,12.554639082293624,13.703346574627776,13.596474556012305,15.491637807055055,16.37256039429654,19.95272294418885,12.894833215826008,11.114298715175057,11.963886921976567,14.672264480327584,14.149553985041052,10.309728055886067,12.142727967415237,10.234128999359287,12.468104413135135,16.747828675481042,10.14180479832493,17.11737351686923,14.369343493024413,14.32289327569306,14.497326018212213,10.884640262759252,19.14295164464349,11.798057739649128,12.580281450938314,15.428470334894433,16.0423808780833,15.903288095162676,12.651004507936417,12.28173766349411,17.732693146209083,19.276824145167858,18.894698691937403,19.420134714164234,14.416041317380795,18.016337641350617,10.279950942530178,13.347773894743092,16.921796969228687,19.345601350038812,16.30593806523453,16.80223367635896,11.323120045010027,10.474033248056125,18.442260199954525,15.699019556614822,15.638755552039388,10.23108691573688,15.781968097824684,17.312921294816444,11.307542557858639,13.000927382786227,16.339721730753336,18.795472172214794,10.637379319785055,12.888508852046245,13.538119340356378,10.424215518845765,16.323717532614133,19.014663592240517,15.954489801939689,18.714923811545347,12.399585021860675,17.730999535880418,11.054732431238515,18.622127817446,10.732353424428371,14.439531136416496,13.563836670284761,11.186618743516155,11.69411223685283,10.792972085178864,10.604556873227132,14.974042872725136,12.803339339190886,10.4919038629464,14.906425110709755,14.850651279604106,19.23334624117409,17.12684659415719,15.831378259725614,16.638128712272923,13.814118923565463,10.57405823272642,10.646527101041528,17.982798348322397,14.811707628598594,13.378662679658685,16.538592460077567,18.9349450689528,10.16877268296307,12.286913325305203,14.17552007359464,11.153547660968385,11.804582607595645,19.97807002526111,19.652620256866612,15.638678327490869,13.243128358045555,16.508678099987083,10.36239623810002,13.324935790462732,11.299183021927725,14.731619368623946,11.186134908005203,13.06205766513514,15.133588561606803,17.979065128000197,11.31499206259771,11.475206885707918,13.9098257095648,14.261146661903512,10.93339375771672,19.75437014857429,11.471831977319113,18.468639803816593,10.515496837081194,11.561482566350904,10.987966170042272,15.368902180776905,16.863296999965723,10.209292258850764,18.72759081559557,16.689608109376962,11.818489075920944,14.217658237334563,15.82806617911693,15.58030685050525,11.550222204413688,18.39008168589218,10.151423653820164,15.302602918881957,15.0549363652096,12.036510659012796,14.003638204408542,11.37805425872507,15.659019787776753,11.387908104841852,12.045241025881538,12.478820084636986,19.46566978678456,16.901351981977346,11.990319072180123,15.517652545649636,19.34214415286611,12.59627154405595,10.105545053599664,14.441502811042808,12.282345658530323,12.577933864096469,12.703605266332545,15.184514070055176,12.602687740148241,16.812336921207077,15.630754215581222,14.09646481533919,19.94763641470673,13.232731749573661,13.822316959574048,12.408071621662396,19.67853806798599,13.432292816572486,16.80406529006745,12.549043911707201,14.267348415420978,18.924468054608543,18.667708950180703,18.767132992700994,19.043862530155174,15.042351976555747,19.91854639121159,17.380004584209026,13.596226660688878,10.34552813264243,13.520091608853784,16.884805583278887,13.749275093347478,12.665567001302161,19.454653991985232,14.089140675474194,16.305884465983127,15.37781451062153,11.41275535519238,15.720239132474141,10.582367828603314,14.547212271390498,18.983751033649106]} \ No newline at end of file diff --git a/test/fixtures/julia/large_shape.json b/test/fixtures/julia/large_shape.json new file mode 100644 index 0000000..afd54ce --- /dev/null +++ b/test/fixtures/julia/large_shape.json @@ -0,0 +1 @@ +{"expected":[-15.4859317261127,-8.512259743730228,-4.716905236755174,-42.75010239715339,-0.8285570539962792,-1.9257351783105852,-3.424952949318334,-31.94027947144428,-23.02719123858313,-48.89118866081728,-1.1449003030554443,-7.4944285875437915,-0.9284308676874362,-2.882294755483554,-1.040338917810922,-6.479832706863893,-10.061106795423367,-2.4071732862958264,-0.9304720920607339,-5.3549570730350995,-9.28715778094157,-0.46701133719088683,-7.460665281008411,-9.619238916244008,-2.4343131442669748,-3.2303966004157183,-0.1541391857386598,-2.1508952805432204,-2.3655783590317974,-1.5862528334775978,-1.7431016619435247,-6.484689971611015,-26.986436645304806,-8.971703350136444,-5.087296297960364,-1.0488656570020358,-2.6187690067260467,-4.46108166819962,-1.0431470321082132,-11.839468323806747,-0.2569974415615155,-19.405292874393336,-2.3048677408765927,-4.066388105247778,-3.5402683451306163,-2.665263262489351,-12.629499639799377,-3.601439255757744,-2.69804137716333,-15.454133517187138,-18.992894780910675,-11.110064567085427,-5.650874626650438,-8.735176218353825,-1.9427628461830553,-68.93114894935081,-12.33871711636611,-3.110305463973552,-16.61242018122099,-5.05220709247369,-18.72776835958909,-7.06030773431747,-4.639341881319991,-18.751279056905286,-2.8557780024531794,-4.800796118363377,-11.61381280360175,-10.40482196760492,-1.2175927569415834,-37.340909711164926,-0.8258448880660603,-4.869889017249331,-19.395150157299426,-1.3041417051331976,-9.878071173933709,-15.15046348529323,-11.9012261027184,-4.228486363761686,-1.2875364956490347,-0.8392708226626127,-37.60023294698928,-2.508208339020239,-6.421684778646737,-1.0758611250775132,-6.90643619408168,-8.302553807035014,-0.6372974854735145,-3.8782869214617195,-34.358482695435654,-10.536358524122946,-1.7076155778548152,-0.23933981811477523,-0.7388668780337759,-0.9436088995448197,-29.634944032932516,-1.0937269472086106,-0.6723630049770066,-0.7354915496167163,-6.810316165282083,-5.926743109790284,-2.8073508209302465,-18.66437434627916,-6.525150214542443,-10.442876800083695,-9.997284740218655,-16.93406789466087,-0.17440980540562157,-18.600307488756226,-13.643874615402934,-4.80401549219971,-5.077875901980859,-3.4474799579850686,-8.677642997382875,-1.641806627187429,-1.1186826009416322,-22.936326154453255,-0.5261165419617135,-14.856063869094298,-65.43882775711508,-3.094044693775076,-4.732617782074833,-8.094601702991016,-3.657503260709116,-1.110554506711845,-1.6156440914423809,-0.7561323663351502,-16.30037662545674,-12.33118064908966,-1.1319749133760162,-31.150486373732523,-5.374471061518915,-4.693777895011198,-7.654614373035985,-5.029455083670546,-1.248943226880786,-2.9066886634925417,-2.108272702908202,-12.882579046065839,-2.1633808512216284,-0.9463637326364878,-4.844521976147657,-11.982019501111525,-4.600100126874766,-1.2149075039235646,-12.99539600188514,-5.264868571874931,-31.02131927773995,-46.53301432978589,-7.303924676758015,-5.065016727695558,-1.9169641074731614,-32.203053711442614,-9.677189316269498,-7.957356067154004,-12.229114338445756,-8.584262615343786,-2.6255348537258643,-0.6442399603835933,-4.047653863574006,-1.4044736013219912,-6.216648032935034,-10.232284232988796,-42.4277204414755,-1.4996299039896228,-0.5205215199878286,-62.782884186157844,-2.047734890357921,-1.338642449455416,-14.917061102575097,-10.641489011121777,-1.383764034893903,-6.629431052455289,-17.786995106246348,0.0466102463088407,-5.94334264529115,-0.8485942899770449,-9.58973122768591,-3.5712707954747818,-4.991128540937906,-11.77799815612215,-0.5515447476710809,-1.3902386685648502,-8.957019542480982,-15.959585956789248,-25.96734608668939,-0.7245606865473972,-7.225367233913438,-5.184639045367159,-27.562036376106587,-7.964862259886576,-1.0060987842891909,-6.945812514646172,-4.042328828899577,-21.609918535477664,-16.376635154579265,-1.8234043159374536,-0.3201977144980348,-1.026640632236116,-13.765936588813226,-3.4453844946466674,-35.83882489614228,-40.89237020491201,-1.7834897050301224,-1.9970463961540748,-0.9261395620859931,-4.570730621400696,-0.5015408856125421,-0.7968458451231366,-4.902061404499397,-1.0680934330938143,-0.3965941729239595,-5.726412633332068,-3.3607227482877273,-2.016218428887414,-5.942700826025546,-2.9109840756128564,-2.251772411337316,-23.578811628450556,-10.508799509444334,-0.6970153322507953,-3.74848994844714,-3.9098836600739793,-10.548200360959063,-1.1920553104776679,-25.433805712608095,-9.118339823805224,-4.052094156617811,-15.388067166116885,-6.39285428883828,-0.35631214342700623,-7.102578506342811,-2.4287598036213356,-32.604151857998694,-24.35146425214687,-0.11932405859764161,-20.393629818772368,-3.3666922439247218,-36.7604461658048,-1.564999544939872,-1.1332635627331933,-4.655039758176035,-8.393217548465284,-46.12207435775493,-0.7883851328496736,-46.42788164987672,-1.9171023382037227,-2.871710728318985,-60.13976870566596,-2.890389833132739,-40.18113851861817,-7.885360405998711,-13.4096267601096,-20.653370335886688,-2.1258368838259187,-7.530625006796209,-1.5968340763496964,-0.23479835644074143,-5.143181722821734,-40.19806260827445,-6.619405405486891,-0.8594380654602689,-5.533283722908032,-2.390454796541687,-7.420829578292882,-1.7826333796792562,-0.9459659220832373,-4.909481964043577,-2.1734301380300862,-10.212199765874603,-25.614092333718666,-2.24719251723133,-5.447306455246128,-19.585214943510994,-0.5387206371102768,-0.80231289169629,-4.840779322007805,-1.841789657962703,-1.269270213564503,-4.16353990011334,-0.6932479040275699,-2.1769994140946176,-4.382328498650926,-2.0333682616608026,-5.59862049683815,-37.238822723006365,-3.1692588668585744,-3.6700839042328797,-2.273492769595882,-0.7159264688156026,-17.366914863072427,-6.798966694551341,-1.0744597522992168,-11.871123380675566,-0.23223963266405967,-5.615942883802396,-16.580627535684116,-0.5549018632031353,-0.7251890735172479,-4.629206989935956,-8.553847041669508,-2.192200602578177,-3.3302439191227444,-3.422851331087706,-6.146449485044781,-17.51579748875231,-0.18701847932547988,-2.602039821078311,-27.96065405942658,-3.118220296371522,-2.2552787144801743,-4.161577946448146,-1.571988402464793,-3.6812508767252643,-3.670197005659982,-14.147717921985464,-2.2735305711726275,-2.87258156861476,-0.5038574911424079,-7.8585218360053615,-19.778343838294013,-0.478566205740081,-31.465848994199735,-0.5513843623554606,-0.04694274617084604,-28.618446902008635,-6.750647700585297,-5.8680102648289,-0.5809145729444365,-6.761734852929898,-7.058894668328908,-3.0285993620503593,-1.2347830678101632,-0.17800063812438172,-8.810721247436275,-4.586217457674756,-8.686186634829411,-4.303330750602507,-3.9041892330532546,-26.04772188539738,-18.55548377881036,-1.0637687419224406,-1.7872894845079632,-6.347678544078811,-0.9738055795458012,-2.1823631638022354,-3.709704876474107,-9.257947490782808,-6.706196189448599,-15.863895566102244,-8.903935515213838,-17.992075220005002,-0.3521471830031464,-5.155226557594599,-8.306506709707948,-9.041985238488207,-11.754522238005027,-6.276396185395533,-13.298795477881578,-8.630746697530862,-6.460283978209543,-1.2186657145020683,-4.349375287568034,-0.9616166844838228,-12.122543257493897,-5.954120845283866,-5.341911223923262,-6.598985737729016,-1.7327592724051881,-17.82650158222834,-1.0412770137047447,-20.96710644876794,-0.7380202040115136,-2.697270686916293,-19.145461690837482,-6.902356238854619,-2.3595583279703396,0.04026572112462512,-6.338278930106694,-2.30947502039564,-1.1918561520419018,-2.943875611219321,-3.3666721913384574,-1.1921503751813136,-0.6351123962130434,-16.83906752929013,-49.88222333672048,-12.516518738629616,-4.925431784861283,-2.4097541721793876,-15.264254222456087,-2.052689999677087,-3.228119273569885,-51.463852144885635,-30.384759132014644,-1.5359664735428775,-3.1991202008540656,-36.07179146614502,-66.4976006991946,-1.1956663760944224,-10.117017530719481,-0.7221776764049983,-4.135619009743189,-4.981387435116988,-46.93272375104487,-2.605033762918681,-1.406334861100656,-14.150401717041454,-6.816851377583523,-5.27458996353564,-5.02403142397539,-6.775332310724919,-0.9862203756562318,-5.7806386747846235,-2.4692511660190344,-0.2883463515180589,-92.98745915181746,-15.46600549930683,-38.370467682694674,-15.708121773297975,-2.6728407055121863,-3.4989103416658094,-1.5547242686207057,-3.9295653604755127,-22.096073807723997,-3.8550285772581603,-2.222538775705604,-1.7038781522799589,-19.057728992869155,-25.165812228637865,-3.9539614431954,-17.531934955198626,-3.4840679043768326,-1.0882309008952484,-1.1257602271031393,-4.530267290073175,-3.6993085684661198,-1.6173793543167576,-5.54879279440004,-12.23343347886923,-12.672111666734953,-15.084331446580038,-4.0407942614339545,-3.388862390538262,-22.183792792290063,-4.838390718413812,-3.0066719109612032,-5.59976488049434,-9.307822344348416,-16.9110931236401,-0.5592745174106648,-2.0446014406474373,-2.4423544235953667,-39.238195791738256,-17.42972059309618,-35.96223772695633,-2.6959568976890718,-9.407301341703247,-28.491121265572282,-1.390639892470555,-48.913855816712825,-8.503421782821574,-14.127885312532399,-2.253196406805179,-0.8980574041053873,-1.5464069847904183,-23.407117574735366,-0.602670823368006,-2.2547561909935108,-11.857741801410118,-14.420670009162071,-1.931730951380569,-1.1194746239614006,-3.598763447198192,-31.063104578232284,-3.027507055877208,-108.13817172775074,0.10309066361829045,-15.786211953315613,-0.9944247074351387,-0.700255462497072,-4.7951945612142595,-5.335131106652805,-35.85397560101378,-1.0116906503834706,-20.914022632678872,-27.7348217819213,-3.054279268913047,-3.252725109592135,-7.876821452572188,-28.214360226910813,-9.172364502644273,-75.66416093590475,-4.668116236752303,-1.1072267044120796,-18.529386859066495,-0.9564390364021258,-1.241302762553595,-1.426507345447691,-3.1032689427680555,-9.360761354089732,-6.391319716008944,-7.735757792674979,-1.2264241247914494,-1.1483808788368028,-10.376426000164315,-4.394878629256025,-13.886898336133429,-0.597685434777937,-0.9528243822976816,-3.9238785820545132,-1.5927316770999036,-5.092872064054346,-0.942762369307943,-33.098284186827875,-24.301483761224834,-8.516394497354845,-49.59545360711722,-9.289427534812873,-14.556160058484188,-0.7781790849944077,-9.62143794560837,-11.633193261388838,-17.831143839977457,-18.23862571224971,-4.0235192441831025,-5.80755702175458,-5.150230064898263,-0.3798834942239877,-3.185370470149137,-8.925288981778557,-9.801819261552042,-12.044579582530961,-6.683686043777014,-6.0025050432857405,-2.212990162050512,-1.3711111275893595,-0.38785905305544977,-6.588046040943455,-0.2628178460574562,-5.1776911021785965,-1.9480923674431918,-0.4747647197024447,-9.228057355725166,-21.125916474654236,-0.5366568755569694,-0.6470133353240646,-19.11731146784348,-6.329641780723467,-20.235977229140108,-11.797409169891335,-0.5913944584337987,-2.8123050430209084,-0.03274468744420611,-0.7553889517124546,-0.5894005324340661,-5.253459886589048,-11.547870255010286,-0.5519920817470687,-1.5631484893753784,-2.4082959108198123,-19.512588013756858,-0.7934143774710358,-10.174976740882363,-1.9571271373676355,-0.9584235963765533,-56.73739862170602,-0.29004051198348146,-0.5717243025527206,-10.974945704762158,-1.6394789146450583,-9.077354077817965,-6.847954290847785,-14.913523757971495,-0.6522222608105286,-10.481680787235112,-2.9477375430385964,-0.9769309414671206,-16.316713913654606,-3.199533395794929,-2.9376872267712417,-1.2567849416726566,-0.9063682795798944,-5.920962156559613,-0.6743953176246364,-15.267291203801685,-3.7613448626304464,-3.1047249345102337,-0.013359807920875877,-9.588327446406423,-4.939522308276245,-6.135033483715204,-5.40293594673067,-22.304903171342524,-1.654152249559436,-0.14930560994756625,-0.931897046284309,-0.7590919963909948,-36.59274099363522,-44.1605615459199,-1.778692232505447,-1.8821407700039672,-1.470138812837375,-8.97851044908305,-3.2898527251103946,-40.46434060848107,-2.9823918358324777,-40.4620126309402,-6.527256082277511,-8.867469694698844,-2.0092637881919058,-60.49693594511099,-0.15356888783365852,-12.160800896171118,-0.8844832547594128,-7.194378611141656,-0.8551293487801299,-37.97205093699822,-1.5477147726500586,-6.112443145232893,-1.6583027426305454,-2.0027671211949,-27.221402471162182,-0.74444798930718,-15.51548217472377,-0.9369683699371927,-0.7101346222265352,-0.10593986253016618,-0.5750058241066469,-52.98877411039613,-6.659243272376791,-74.60727172259374,-3.401645895767592,-0.8452599878232094,-1.7534408601504505,-3.708917082923689,-1.3898237172079257,-0.7766315613486365,-5.064544903688879,-8.383162725418268,-29.150947635736447,-1.488808747771728,-50.33948065491759,-5.627728575207943,-0.7308230827456437,-14.073409192820996,-1.197954288535132,-9.311215756876479,-2.7195078616558925,-0.643454502405056,-6.075582825280137,-27.020869973637836,-1.2877408867765825,-25.184841678613726,-0.03642936697975818,-9.547881738009963,-11.543613995542117,-34.09629975602073,-8.092930372189553,-7.252740382081095,-6.294392746922984,-5.743108551592412,-7.000142093185019,-0.5273336596490639,-14.312542589615926,-24.419056912420654,-0.9224081475009291,-0.9379517559770243,-9.980503895683778,-4.5900866909564195,-3.647791840474814,-1.4330979629836613,-8.361423174770618,-8.096740328484014,-5.343227330678053,-1.0359672503795334,-10.053280556444111,-6.42975145926359,-17.334951335896104,0.09013010562115698,-3.024526165312562,-2.328064902438091,-6.422805946766494,-1.9731422606752522,-10.803776204256287,-34.084583368865786,-14.95612677655107,-22.103074953168388,-3.3685208883121707,-1.2273165958961425,-1.815320213011705,-0.7186569164156049,-7.063047506525934,-8.058540335735055,-7.077307848427857,-0.606188981735978,-1.069308070291816,-9.972434353047744,-3.065998608637579,-13.739968436604295,-27.469554763316253,-5.437456791147852,-17.341231626597015,-15.801246214789181,-28.68805553972586,-16.45413749994535,-6.4771765268886625,-0.14796322648424276,-3.6015676829998644,-6.952017420887115,-1.5329127920914545,-34.34876405817362,-7.049366814653753,-2.1159880701763853,-5.326401484129102,-1.279655959151776,-2.537695661013255,-1.1364341413262866,-5.00238257419313,-19.279384132248627,-4.725894090321095,-7.416117563577436,-2.6958584406653605,-24.30488545366966,-1.2765828228175722,-4.745625626309174,-0.9941340692984542,-41.15976091323774,-20.417759350158775,-26.923814721998955,-0.26408931388562795,-1.4585399240055554,-4.765390134443526,-0.6836249417645968,-90.77704733484619,-1.4576999154577064,-42.956836038768465,-3.2618474950182184,-11.563238316992047,-5.098945124834428,-1.4527472364248493,-17.9094637015141,-29.07650416006086,-3.0054825828339604,-2.2623770967572874,-0.3213840283596301,-5.664885215263681,-3.340304485585222,-2.113075232458403,-3.5370142319382456,-9.062819440512085,-6.094358103251359,-0.6369566281193768,-4.801513216071986,-11.012262942508178,-27.266740635946064,-16.014302847808224,-0.9772797697984044,-8.736470179796969,-0.8550829029069753,-4.127675579342302,-1.8513108959688724,-2.2623404965739686,-11.00328860777688,-0.46434858456601513,-2.2019280444075475,-0.4918123770985754,-4.987193566899503,-0.5152588692841737,-15.18704783197142,-49.27244567721069,-5.725615300641803,-1.2305075424357443,-78.62897157149544,-5.131469169626345,-6.135286560694314,-13.988483415904515,-10.807479749564862,-27.875775274013296,-4.256265678227867,-4.357441077112273,-22.096259317982263,-22.059265496527512,-0.09358397758772918,-1.604501982345082,-46.48304649365612,-21.000731281432675,-6.519285847913732,-5.239274719042078,-3.7321115816370067,-2.4942169289995615,-0.9930932974538174,-1.4101337450880649,-5.2438919169497185,-1.167000885843185,-2.8095206188926625,-21.243683429259942,-22.381444035960648,-5.21588809959499,-8.513377061974456,-0.450068039479818,-7.259015637535297,-6.56910634768143,-6.622849663553364,-13.913516004484375,-1.5255511376176867,-2.2135965721793287,-0.37112788909769234,-0.9442064234794219,-0.7059596366289871,-1.0637252684768683,-26.05726442743179,-6.46625968659531,-3.061801211991291,-0.24135286262555544,-4.584624046499532,-16.22712274726644,-20.40246917811742,-3.831491901126628,-1.1089246052094954,-2.986715087487849,-2.181500172205145,-14.452568192747794,-13.27812204419026,-5.660240931002231,-51.28627106422267,-1.7439662877661555,-1.1259145903597823,-3.5023481039682642,-6.561631358832228,-6.638084311069321,-0.9033852386768702,-0.723369323246027,-0.650249325916481,-0.5749914758990426,-7.79933862571672,-33.23730718199448,-1.3843076529072855,-0.9386906134987405,-1.7377711081269764,-8.297167323497067,-1.7427500370723528,-27.296555495841574,-8.335365499029367,-4.109464418123939,-72.83949016592356,-1.738019448617463,-15.649043418324126,-0.49691410964169735,-7.7808993074785295,-3.8389793032340638,-8.28734407955826,-7.853450580400336,-0.6262952748329236,-8.65087671332627,-4.849068094098193,-5.955440106028287,-2.5899953820388184,-32.30425962038889,-4.138173185888245,-3.5336346650972743,-10.126447617678092,-38.56149681323887,-21.00048282656871,-1.1283788535268147,-0.9132343557096834,-11.296109232363712,-7.838298789355135,-1.2910913676464295,-12.171089360790418,-42.911812938132876,-9.897718513087431,-3.263579326831727,-4.937160244919933,-0.6847721508323934,-62.067619776652215,-12.931143302705712,-6.022786828223685,-18.263614480384202,-0.20870318105400099,-2.339054886711727,-42.521420242629446,-2.2456907839292075,-42.39030846429737,-6.407721940906317,-1.2446227002431625,-12.630442345375887,-3.3048575119856722,-5.910292265697043,-1.512778874327398,-6.702645612933223,-10.854831423575169,-15.50970383398438,-1.6783496880192357,-41.797245696250165,-1.6480237665015358,-15.494640061238277,-1.2631267070500845,-29.408487748781017,-27.418973720774904,-13.637289850704203,-18.02775225919517,-0.1863309111033935,-3.5738214993813955,-66.5372057013249,-0.7651026681857767,-0.5591888770083537,-8.268570868389034,-21.76163299622966,-4.576532914046039,-1.3880079466806519,-3.316704048204566,-4.644758665880802,-2.7482102453218196,-0.8954321133314243,0.22328639141790285,-7.18171223392286,-17.46680382748319,-0.3951719647514136,-9.82983522953867,-12.841397246496394,-4.405341448280594,-3.114537704748993,-2.1162879516161706,-4.678174447481735,-2.751828360544651,-4.448196217014821,-24.528785089618747,-10.671205413256823,-5.470681239952288,-2.6635423066394335,-8.052756154522942,-8.773054863028753,-2.8944925150287095,-2.2121353589742014,-2.9661884231638345,-1.2703369079400817,-6.687071312473514,-8.748045267021059,-6.694777866899998,-1.0711629895385297,-0.3411684187737061,-2.602137337001562,-31.68851244010466,-1.1089705237733782,-2.5767149985176694,-124.30195905368942,-1.3537009632101211,-4.656738971904385,-23.26943593995048,-6.685893824872799,-5.546752608385136,-5.181094894335592,-36.785011250023686,-1.3200354227645488,-9.854948233725358,-3.3685246665500226,-0.42772514799856287,-7.7082707798060035,-3.872392842009247,-11.389192954247752,-1.7527891339469317,-5.3123047080643495,-0.6834474329248186,-3.425063497393452,-7.302149863002294,-7.816650450163149,-12.04654353014119,-0.7169454336807473,-22.085548236353237,-12.866011113239853,-34.63625226108724,-0.8320532268144263,-0.06774536788246621,-19.4536210963326,-4.422370676858248,-1.219925391732493,-0.18831800430671786,-7.040389901321389,-9.601632513506988,-56.127267354015586,-12.079616731204778,-6.493128565497073,-0.5828676427324757,-28.247253331243453,-2.0736583408982994,-1.2038361475021635,-6.0040968020310865,-21.661018961973646,-2.679774526934132,-9.85033366979629,-58.90914684550707,-8.369947458739638,-10.119576363122615,-4.141563014701758,-5.011352382756397,-51.86927785720169,-7.42621921396277,0.01561416245990177,-1.1645226259748847,-0.3397191908399364],"k":[20,19,10,14,16,13,11,12,13,18,18,18,16,14,12,18,12,16,17,13,11,12,13,12,10,12,15,16,15,14,12,18,17,15,12,18,15,19,11,11,17,15,14,19,13,17,14,14,12,17,19,17,14,17,15,16,16,11,20,20,16,15,17,11,14,14,15,12,16,11,19,20,18,20,20,13,15,19,13,11,10,19,13,13,16,14,18,14,14,14,18,19,10,12,13,12,17,19,13,19,15,15,15,11,16,16,18,13,14,12,17,17,17,12,20,11,12,16,14,11,15,19,11,15,12,13,15,15,19,12,17,13,16,13,12,17,14,13,14,14,14,16,11,14,11,19,14,20,14,14,17,20,18,15,13,12,13,19,19,16,19,17,19,14,11,15,12,15,14,17,11,14,15,14,17,13,19,17,15,18,16,16,12,12,15,17,18,13,17,13,17,12,18,20,13,13,20,17,18,13,17,14,17,20,16,11,11,20,13,10,15,17,11,20,19,11,16,19,16,11,14,12,12,11,13,18,20,12,19,12,16,14,16,20,19,15,14,19,19,16,17,14,16,19,19,11,16,18,19,17,13,10,18,15,15,11,19,15,17,15,12,13,19,19,11,14,16,17,11,18,19,13,13,13,15,11,12,12,14,12,11,11,13,12,18,15,11,13,15,15,12,18,14,11,18,17,19,13,13,15,10,14,11,13,12,19,13,20,14,11,11,11,19,18,15,17,12,10,14,17,14,14,19,17,17,12,18,17,14,15,10,12,15,15,16,17,14,20,11,16,11,17,16,15,15,14,16,16,13,13,14,11,13,15,17,17,16,12,12,19,18,19,18,12,12,14,17,15,16,12,15,18,17,12,19,15,11,15,13,10,14,16,19,18,17,19,14,19,16,19,13,16,15,17,19,14,11,13,18,14,18,17,16,15,19,11,11,18,15,10,16,15,12,14,10,15,11,17,14,18,11,14,16,19,13,17,19,15,16,16,12,19,15,13,17,12,10,17,11,12,19,15,19,13,13,10,20,12,13,14,14,18,15,10,15,18,13,15,13,19,17,17,17,13,12,18,19,14,11,19,16,17,11,13,14,17,13,13,17,17,17,11,13,12,18,18,13,13,11,19,13,17,12,19,11,16,20,13,11,20,13,17,11,18,12,13,16,11,16,14,13,15,13,16,18,15,18,12,17,13,18,17,15,20,15,17,10,18,11,19,12,17,13,11,17,18,14,13,16,10,20,19,19,15,15,18,13,13,17,17,19,18,11,18,13,14,20,11,12,14,13,17,13,18,19,13,10,13,14,17,20,12,12,18,16,20,11,13,14,19,15,16,15,20,18,14,14,16,16,18,19,15,16,12,10,10,10,13,18,11,17,15,20,20,18,20,12,18,11,15,17,17,13,20,16,18,18,11,18,11,18,16,13,11,19,17,14,15,20,19,18,19,12,19,14,13,19,14,16,17,11,20,14,13,12,17,13,12,17,16,16,16,20,11,20,13,14,12,14,13,11,17,19,10,20,14,17,11,12,13,11,11,15,20,19,18,13,18,10,17,17,15,19,12,19,18,15,11,15,19,14,15,18,18,17,12,17,17,14,17,18,18,11,19,11,19,18,17,11,11,18,11,13,18,12,11,12,19,19,16,17,20,16,20,15,13,16,15,12,16,15,12,15,16,10,12,13,16,14,11,16,11,20,11,11,12,12,14,12,17,17,16,12,13,18,11,20,18,18,11,18,14,12,11,17,16,12,16,14,17,15,15,18,13,17,12,14,14,14,13,19,17,13,17,15,13,17,13,18,16,18,14,11,15,11,16,11,16,18,11,16,16,16,14,18,14,13,15,11,10,18,17,11,17,13,16,19,17,18,18,12,14,12,15,19,20,17,11,12,18,20,13,17,13,14,13,13,13,18,16,15,20,13,19,20,19,19,11,10,17,19,14,14,16,13,15,11,17,11,15,18,12,20,14,17,17,17,16,15,16,15,13,10,10,19,15,15,20,17,17,19,20,18,16,14,10,11,13,18,17,18,17,10,18,13,19,14,13,15,18,16,14,12,16,17,18,17,15,12,19,14,14,19,13,10,12,17,11,20,11,12,10,13,15,18,13,14,16,13,11,12,13,18,13,13,11,15,14,18,11,12,11,18,12,10,16,12,14,19,15,17,18,13,18,17,16,19,13,17,10,16,19,18,17,13,20,17,20,13,20,19,11,11,11,14,10,19,16,10,17,20,10,16,19,13,10,18,17,18,12,17,12,14,12,16,12,19,12,14,11],"x":[1.8706627499216555,0.8585103657695015,2.338536297047008,0.8011969274179276,2.1495313332762245,3.358732046656706,3.122288404422794,0.08307937005211707,3.225006703443273,1.7778629005971491,4.888154015672139,2.3219933392292056,1.0898514769743084,4.135100945231311,3.1559174093736884,1.7869930617158947,3.8786832454169096,4.699772737867226,3.342094197915113,3.968147995465027,3.4201822064611163,2.1637972276714135,2.3598555154948855,1.4538050788599943,3.296683727195523,4.109290820898109,1.7570833170990374,2.710563756813502,2.3052553777969695,4.967799074437224,2.4061223503620055,2.580355022809042,0.3317017532748301,3.828627474152447,0.7762936559970246,4.594091687646824,2.9517061387465016,4.594597543671969,3.4028773190448938,0.1678228433733564,2.036358413617795,0.2541431770583591,4.283620083251231,1.0100441241108726,0.9795279384442435,2.9167950832293355,0.7067278518302611,2.9545560488329583,3.390760026086971,1.4027993440585884,1.2965034071015547,4.838585248880024,3.396671353805546,0.7779039647044705,0.8208738673044247,0.02801308173313921,0.8403645551124594,3.369610144622687,1.3062043512135235,4.036651784371608,2.5986840592900187,4.541170982787368,3.7223634115245066,4.864361536052854,2.7623015050850164,4.532808934045024,0.3260866819037944,3.55401084783431,1.2353905266526732,0.01627293793820095,2.733593188206428,0.9476031135333984,2.964285695349872,1.4377770856220362,1.3973757417864707,0.14756906857721908,4.1567063733849245,1.36668605658952,2.5627718077994475,1.880538391110952,0.2759211109348503,4.392884751046204,3.413678477274634,3.9614602311201565,3.253169520419185,3.5081320472975897,2.220427838774275,2.6040887603909244,0.9158746216784597,2.2397723882194898,2.6419296943696615,2.1898527887341546,2.3457211025964697,1.7997352765642127,0.33251814532470836,1.9684072160370802,1.455104609081499,2.5356766338928907,3.422321624427652,1.886338226351838,4.856905768555118,0.295267570843859,2.670924974049785,0.6293575364219273,4.532068672014198,0.8966195467991189,1.6684424547131715,0.1884982474928676,0.7761297698495939,4.382233164612885,4.704367637309831,1.2992891115979643,0.6305995816036702,1.0263713939483121,3.3624816850081887,4.969618073392688,2.3215196085417777,1.4207067600104062,0.9665895551327852,4.847382129950688,0.6072743910366896,2.142548015707294,0.49854130139663666,4.60037576608435,4.0143887089915715,2.5150886042809653,1.6107598123013211,4.893686764032986,2.8050565737540722,4.183852466504108,0.9426902588695596,0.9862069850255439,3.5682632083943897,3.2628006565981584,4.741279095627351,4.122114780436804,1.0623218147602553,3.06134354609783,4.460592508507384,2.0199132551029555,1.4338397269568814,2.3507319641153748,4.302430014902537,3.858363237029031,4.505532269018402,4.425083622979448,1.5690711149731607,0.41175210813283236,3.2274542727114786,4.213123331015163,4.160739600716,0.7693320170394513,4.748228645242012,0.7681301504310467,2.496110692913919,0.3967078490676301,3.0093269279694255,1.8098401679501708,2.4551651652821613,3.618184388698946,1.9517816931708598,3.9919778379972817,0.8460558654002226,4.45183013596135,2.1950153020706353,0.01785835583494655,0.9919205635785722,1.325452314015818,4.361213784851045,1.3409396225174075,4.273714849629173,1.8146644054295424,1.0674184028700529,1.4144989809424935,1.9549109686459842,2.792924082163757,3.800271031873349,2.9589745558661793,2.346342915081662,1.0518221549889328,1.4585631973974833,1.4372935789907304,3.471656438648604,0.5810524975994991,2.2527692492118767,3.240652971212621,0.7295076693706815,4.881932864164845,1.3461449358207855,3.7306539916500183,4.058335266089818,4.428106972883179,1.730849371622063,0.3622194029707415,1.1607738611158636,3.4181023772043795,2.4114196333280535,4.526020470020155,1.4352768886722866,0.64372196306966,0.22703828859426456,0.10850108839538519,2.303562249632174,4.557351587922465,3.573166144041875,3.11167532938187,1.6807742455591979,3.8202718384921255,3.5108254118310036,2.3589371747929153,2.067358094912276,4.429233891647227,2.100318214340274,3.2336717670514723,3.6812873397453147,2.22108169153723,3.529136561038996,0.32976764329455843,4.018831101422374,0.6506090775247464,4.271537348297828,3.5247281000952513,2.7119991323726,3.946511397009963,0.26235549835574856,4.137163747207973,3.6744780382387363,4.943426113542557,4.039911339368133,1.9337075910485235,1.0331563713470826,2.8517243851694527,2.4478259263230626,0.24221964260663809,1.9364184511447746,0.3347277073823618,3.399157309350982,4.069000878332957,3.7068472727711144,2.1971649988928377,3.557107424915942,4.704509392729079,0.06427195902917959,3.1300686764331207,1.0530438371822493,2.486731127529618,3.0124340654128288,2.0801342449016316,3.1168508997234436,0.4326147694673965,3.5915430490722455,0.15692669603942333,0.3029066737508401,0.8734242829662331,4.760319544879535,3.0498549755674165,1.7603162543960527,4.5406303193973505,0.15282788081141696,3.9995855251878676,2.279644524752439,4.433061201856217,4.725296100619677,2.3578955649193034,0.8047894400623068,2.1014426267160435,1.0689894590570281,2.8025190468073733,4.28167192251911,3.7304009452178475,4.0774994389545185,4.510625640904845,0.13117079594019754,1.6619202162909152,3.08795084608564,2.9075895383283856,2.280344502379835,4.863753949289274,1.7900888439718943,2.068341437288036,1.8824592738599788,2.822445442587634,4.728171947379928,3.9755211025804904,3.521851227762042,4.971806237418668,4.227331742571311,1.074986571201878,3.139621345367476,1.9635999175048646,0.6026387666486888,3.87356152309004,4.3459217479150976,1.6399077995452094,1.5650184055506988,0.2576500813988525,2.3095974628730365,2.682912590098403,0.6094830581257915,4.227091785682619,3.309652584349042,0.8919076778436608,2.439907819877496,0.540253559920898,1.3009085941827903,2.053090948936366,2.3930324322941576,0.2225565378343064,1.4593719014911766,4.665455213434844,4.868795034107318,2.5806386568014794,3.716978310581338,4.427759683002951,0.2699183549537021,3.413272707929098,1.4347988711236481,1.8928678494429285,2.12777046800345,0.531995133879759,2.364124948307472,4.9948478338433135,2.7061217179766253,1.7048136884313325,0.34135980210274974,0.5145116691026563,4.800235622690399,2.0228768536667365,3.9564222840867025,1.7955413769384476,3.8898961544347532,1.1992903948535305,1.4645289215569046,4.772022648433552,3.665055524915821,2.3371067405937076,2.882835765068706,4.426986001018701,3.2499048448769976,3.9870881564198313,3.6271499384834627,4.422473963788304,4.514844082373715,2.2352022265683424,3.8370970354000136,3.0218960339786416,0.7895764541355477,4.142033112595359,4.773132321688934,2.2521526870104633,3.219768844502945,1.6894311769947845,3.6491442378181924,0.634015926661029,0.5621786336053725,1.4384497592332757,0.7221208239261523,1.497092837316668,3.4851196315399857,3.33611313553549,3.1668147263509527,3.501805480503477,3.0643260138283654,4.012463869712345,1.660534918136083,4.129792017702894,1.356694451896655,3.657340904147055,1.8952181817108205,3.3447262841739835,0.3488555042241803,2.410791224637605,0.8481416487172522,0.17617439114100297,4.087913201847524,1.2444823151073703,1.219076898321434,1.2546380722152939,3.438169957874171,2.330557386299011,3.2712623162694934,2.654912558692505,3.4390299422121604,2.9156155188588464,0.3545892448084509,0.10741849809548176,4.47725177241324,1.0658822417041125,4.00423906118014,2.4097354617209445,4.323201766662078,3.337957879594302,1.6700388688926537,3.0938021922944237,3.2926535194882955,1.9714371318048463,0.07516220069993307,3.1023167867725823,4.637794024251519,4.345041430832137,3.3508899709664153,4.253515172134543,4.098917411432444,3.622862487347547,3.149701183859758,2.798459094334258,3.9901751635115366,1.9795961096964965,2.17925861273196,1.0027663325818958,4.13445701955268,2.43892577254054,3.0451541529079265,2.362232433541671,0.689960529537117,3.1989708015862495,4.058973696660732,0.3321492102136103,1.2502316266842006,1.280606681139872,0.4255747741985205,4.03424980890419,4.938151403008135,0.5219548958895404,4.297720699045636,3.6121818026592454,3.5561626971092544,2.7788083106813364,0.1866811218141584,3.1712563352621927,0.29075437432341866,3.8832656474834404,3.724077008343918,1.883867254331325,3.617309971759136,4.361727397808497,4.947301609400167,4.151397478880083,0.8588466869197708,4.068243692925507,0.48800735213512914,3.7558367965462605,1.6335508561604661,1.3661015331064597,0.6731834306663165,1.5093449478736165,4.173063171737396,4.882616043433506,3.2832684486687045,1.1970577155945084,4.488424235083535,4.024087306379903,0.1401226404141842,3.630383687443085,0.10430539671254846,1.158322852475795,0.5685024178750031,3.215533844450026,1.9216183430275757,0.8388766355192234,1.546542867509374,0.4534214961368621,4.936231941395274,3.0660567580866216,2.07612384773359,2.629134619270147,1.4232384736307946,2.115601081965437,0.14302080583626586,3.0893201538161277,2.9886861968813525,4.9028907247863955,0.6950927920036554,0.9195296562788025,0.8429537001263632,0.041344825904474636,1.2663790247302276,4.95498705484124,3.3828924308633357,2.019762427860814,3.9635400752285186,4.562577526949266,0.18725746216217476,2.6626379790529118,4.77095652183254,0.1343416352711535,0.8467934450177883,3.386682827442735,2.921654078342668,0.1862845899266996,4.897239735526901,0.007591289419908165,4.154569355099481,3.9736500644864083,0.164417287589389,2.569395019308586,2.8697534737596078,4.176190834924332,3.374201826239073,4.8992246559450106,4.880292441051028,4.022401464634503,2.680665131363138,4.923268503946528,4.314936193530513,4.7547698872590605,4.595644720553529,1.2783238839818756,2.7552964939221236,2.344024561529526,4.699761441718904,4.720556398603254,2.013858419401936,0.5328709358997685,3.207621975291839,3.595250400235063,0.11272395721172668,1.1591341302002378,4.4673001520613695,1.0925395563962104,4.940969394113203,1.0022477457436296,0.36647616555410045,0.49691809691566613,4.809269763419323,0.624025587502679,0.4753294562927235,2.4578047810174364,0.7131122281997238,4.2100895694945155,0.8425233213885663,4.314522512965371,2.195064473558037,2.6727514057303803,4.845737009991665,4.705992064496659,1.8244875361000235,1.1115516849292162,2.0424854062366817,3.1713822738977235,1.3717620597351365,1.7431707961093257,2.6062536369518554,1.532420064353791,2.3119639215900123,3.053471025794676,4.917469779556076,4.761835722295774,0.561225674620186,4.1651594906567695,2.7077248997168537,3.4092701719440752,1.3274154536189997,3.54032579898367,2.5657182332453834,4.036823204354112,3.9492645815400937,1.9691375002042488,2.288240316715877,3.7590186491170363,0.16170450660545566,3.272663142091493,0.45045993850258204,1.838546962917974,4.227598734657667,2.558966538105371,1.6717826919752232,2.0982401385210627,1.9283162427462985,2.5987449462979697,4.58471446065354,4.119254924496451,4.482973755662226,2.887149276275418,0.5793774444135413,3.6985507304615286,3.48219168102427,2.7459942862683464,1.8614321984443605,2.633674139251431,4.745560805324529,2.3717672950869364,1.4554401260211347,2.719765173092059,1.4880214259898872,1.1708105437982719,2.866041901049373,1.542657415538219,4.966043768705629,4.668664130227898,2.6051579273000183,0.712053787233583,2.6461319739385902,3.6490695205580757,1.3386147814995775,1.0482867276967767,1.2320850199955158,0.2709915946310171,2.8992942867442704,0.7944851556573984,4.654514996904767,1.7846054891758567,2.4459068066700542,4.272797109561541,0.15507679510882721,3.5294885044551174,0.44781314564563135,3.0520010369732797,3.31642310497294,2.7336759623802265,0.8961835950136976,1.9072339320210663,4.6467519742622585,3.9841847460835877,1.4570670904136918,3.8635859022838934,0.45778479108778747,0.6250508831041068,3.5930560505857856,0.5878622452187543,2.9192177627502947,1.6990899914507118,2.98392424618625,2.749162528929028,2.6514093032376596,3.321480459668046,1.6422108161327276,2.0442986566682606,0.13494307801295236,4.106467648620735,0.4344737908179086,1.6794057615813518,3.1627438565269825,2.0788640524748727,3.277697138286484,3.6280745031923067,3.0678439241752997,1.3693155112415434,4.984300991292634,0.112262539981971,3.7551459895892316,1.1276094647098778,1.0821515335196086,2.173906573530131,0.5791921811437417,3.5022202058273666,0.308047388754491,1.714512997984633,1.3797820097356872,3.5102076950125625,2.6568719196769597,4.172786382138469,3.9098883265964,1.2256346290164433,1.3781354876152618,0.558620399274159,0.22804609270063114,1.8905491922321138,3.796636344987485,1.1741498625650504,0.39011692544617227,4.4873819680729,2.9328827458828153,3.1056863048627283,1.3311391632936276,3.523100641446253,4.1779961418699605,1.6142288272998562,3.283712483297714,3.675693209518962,2.060940214079804,4.652506132126774,4.508957890879806,0.8148998206188951,4.38953677172932,4.927425907382337,4.280155879261027,3.0947059199946003,1.117729406984982,1.3242593232699829,2.8590768880109763,4.177024281111363,4.311073744399987,0.9637181814876061,3.949355945066517,3.8789382771470615,3.179553095505463,3.8493550228235174,3.039300377333359,1.2095124367956478,3.0108537147895653,4.018479147042703,4.51911990390533,4.134179242608398,2.7907099787366563,2.65195930623348,1.215872487572508,1.0451873873161854,2.576251033724468,2.3284703548673837,1.0838339821612175,0.5806153152922688,0.12042315529154468,0.8190863878529031,4.437367150229752,4.608723072355815,1.9383493308809108,0.8705883222204225,1.8538035096372107,4.213167661527054,0.8114506355301443,0.24832160422597505,1.0365303446081409,1.1540130438469653,1.312239406770065,3.6142855211739198,2.15986662520082,1.3018613873866314,1.0294857981647632,0.9548824469001116,3.7322018225790634,4.3249787847623775,4.570230802332549,2.8499537786626084,4.0052818213218435,2.586610071973825,0.473117368440622,2.064457411450541,0.9023614418868331,2.0440423311724807,2.1683931931572644,4.9434862804515936,1.8487247929962303,0.006715385290260167,4.881145567838208,2.8605745997943464,0.5375505489635246,4.731981474964054,1.9547270409340933,0.8667083491699157,1.7970345081003625,3.5775893075005505,4.209881958807702,2.9841208355489646,1.705556270509454,4.419724344926985,2.537411608559931,2.4846651635355146,2.2172984283451425,4.934852911917336,4.561450223764542,2.117556380757609,4.7768633703169705,4.882686120218944,0.3230786755634252,4.309311499245743,4.670219676042092,2.9926274321028945,3.9204710204136806,3.817772072385143,3.4665500585295037,4.432735951493203,0.4211272976650915,1.9193581496685086,3.9184002323781453,2.28296107178903,3.8013935904523386,1.4039415149892576,0.21172965223567042,1.1138388655404974,1.2736535217103817,3.630583043064217,0.009128835834674165,3.8210148644826027,2.3976859021237837,1.5251708037356337,0.8360829273708625,0.09813888400523219,4.391099427032207,3.4923069413083887,1.3367925662852764,2.1535068976409875,1.5618334936092926,2.9243583114284464,0.9143397690523081,0.10850135920099313,4.7494282441353874,2.5013391709871327,4.458419714627442,2.5835451362906516,4.461747514643139,4.314948783484107,4.911563216301894,4.594971531474411,2.3520068345850067,0.23550739142797927,0.1681817974255706,4.100150989599323,0.8342278021385019,0.9110618707074125,0.9346190019997402,0.7415734283002129,3.817621769628702,0.834199894643497,3.6825151071588493,1.4333472827694416,1.5945033587719049,3.5953611605090776,2.6242219009774614,2.3004438186705,1.4123088181951526,3.7217348856053922,1.1200101810540453,1.9772000912085375,1.3041176594643156,4.9929995064281165,0.9919196858434098,2.6812562506626025,2.8992655567397065,1.31582307207885,4.386839391688396,1.0484423422283362,4.596093594322344,3.3936891360791654,0.06510127910331454,4.341667389648208,4.551153006807814,2.541619541606911,0.5272354118206068,4.557183304896317,3.125482220956106,1.8768806349845224,2.157754090065942,2.536418313822515,2.5091987411662564,0.038948725647742766,4.870686798712345,2.789652637198431,3.938182860898424,1.2507143674175358,3.3359295480022224,4.747727746222505,2.524015183778432,0.8775023568975349,0.8733005656848258,4.546662041549751,0.7031760828987044,0.8026273669518236,4.303658218623009,4.644771203864453,1.5773733897476183,4.900776832936986,2.7363854755862693,3.9482691394342186,3.9839078442326112,3.7921010944462488,4.645433981218078,0.8401093208204025,0.7361067576843272,3.9313226120390157,4.340802114342002,3.2140536824492214,1.4786058763589915,4.391264050187353,2.3539628067553977,2.100696924396633,4.555388302511863,4.231561668946706,0.6400649623186405,0.21902114309341303,4.802027742415486,3.472236286222996,0.8304090037382372,2.458860354632366,2.225407579079819,0.3867510514517225,3.292126947730274,0.6848103271115635,1.967355037721975,4.014080110646299,2.9247865635666006,2.2773566064333495,4.58664563642027,3.4076829417697754,2.2977412293482633,3.2206711807972166,2.583297294623861,1.5374900822420179,2.7191523811696614,4.1135149831834985,1.861618385402647,0.8168332513007037,3.7062465661754143,1.1634030013838237,2.1531432217760504,4.150915818678547,4.599917272456247,0.5105036009940189,4.646552844046336,2.4151095597757513,0.47369418530578855,1.0717809059620598,4.256161576484178,0.05025817070669736,3.5073221717610314,2.452659136693023,4.06663723221253,1.1258548016375192,0.9020190213085755,4.683658318791153,3.93282973407731,0.7312860561647605,3.747353010582489,2.957156742128385,0.8199665550382429,4.93081322703495,0.3519964449726287,1.3064227293241792,1.6989185391329653,0.5652170639195198,1.6608380339183082,3.9782198388399994,2.9645617353582185,3.303637989970536,3.341326318720681,1.736390948394445,0.08307412962507033,1.9477277718906105,1.5609023399037936,2.97350411776679,0.46914213809787886,1.9105980286685997,2.9054490957660892,3.06619582849586,4.550155246754105,4.299537239721321,4.5716351878484325,3.590394907311966,3.1274434523690466,1.5726175032144252,1.6397210133363815,0.7852773983589612,0.2595018656629988,3.5371687034515187,4.361730921081884,0.0009260748606487734,2.9004978959844188,1.0787593159893294,0.626298936897276,2.679666414979623,3.8235255224180644,4.668784719297868,2.3010104339856974,4.4982608932715245,0.4127801502165396,0.902457594400331,2.6509479248596923,2.5023032303789607,2.7096202324665875,0.42358588947836284,2.8456639793546956,1.1577124060350885,3.1686378727754083,3.4562292699892847,0.6884646717416998,4.265596582639502,2.325694094648263,3.534868472201236,0.6271400064918498,0.4605695827366818,0.8945406575852577,1.4951828159423552,1.2857313909899493,0.28925735772588945,0.8315128253396464,1.8049056084273019,1.955391441643396,0.616084841810669,3.5938596354879895,0.09429237074141561,3.564033438267918,2.471729557613196,2.525993421254954,4.766940990861097,2.2391056007302037,2.6572310200511238,4.179860762232779,4.416333487217889,3.8495980252425377,1.3192741393873075,0.3187051724951018,4.503737433077109,3.7613984272330736,0.43489957134307033,3.2051048019898385,0.09535885050707904,2.0183698298749277,1.0974190657003058,0.9554364265168325,1.2050164610576397],"lambda":[2.242148807037214,6.823588364875908,9.388745063808857,0.295230801656583,5.695197324216097,5.661290114090958,6.5008053033419655,2.9988428155168,0.2884760945305853,0.2532922931123571,4.039860158877067,2.7185690516094096,9.522180028282985,1.9273369736071033,3.138207082804898,3.7719323282721096,8.573287713906963,2.201387987788659,4.317192418187046,6.723700741728398,8.939610010023554,5.7945210130053475,1.5809194590714104,1.6771744861700788,4.984306179522604,5.023700075113489,8.10341972551273,8.967180364731798,3.721539431838803,3.5246215177359264,7.539359925013334,2.6985448546187185,3.7776608558726066,9.487987367531517,4.860476124405384,3.64543432731375,2.9037756665309544,7.169198003443769,3.6662790224473607,7.66220741447863,7.798220617955249,5.830143513050119,4.846581966954968,8.560197497011451,5.443309493767588,3.3960456445916654,3.314853660524839,2.3006215903805693,1.9394599581263816,2.1203131057373126,2.283579879641562,8.819042384791974,8.54804205321692,6.0798490618825,9.554120059065923,2.205623510704804,3.80080565135956,1.6194790065104825,2.9262365041666105,8.911192096946763,0.8290776193404681,7.187157670876938,8.346402202170658,0.18490990014653708,8.494449100677333,1.353735347401832,8.45596004884381,9.545232785618097,8.165176220793597,5.644694383188509,8.412093527332019,9.060371372606397,0.911917339393149,9.17342772870169,4.281892464840931,9.445599592853757,9.859353005185671,6.413188216251992,6.92936496140609,7.751925040784286,0.2688650395502479,6.3344941239183346,8.485421126941958,2.9854144468538557,1.7563992500055736,1.1512942011608596,9.84080554822578,9.96963564797561,0.4818178239205073,1.3946025352701552,9.686946847663672,8.864468747402068,3.660861252258727,9.155740599757323,1.3621612787243143,4.206096160928006,8.473571320027194,6.138298976535975,8.66672184253069,4.0892737773064365,1.854857029313599,5.3612976081172565,1.970676287583133,2.7191202304560114,0.9799135090178068,2.533502929301379,9.318027334536206,5.633173825378659,2.790889183638827,5.45873773406133,6.6992811737460904,6.251390986860931,7.407710069728988,6.2477835539913285,4.737337641631156,9.869925162604842,5.214741438596901,1.929641135666349,0.04839116516095254,3.819885633852911,8.95163759630573,3.0334307264669524,7.482187571262506,3.4032458372610797,2.1782556270377573,6.106046311223514,1.338470695462186,8.460272528839479,8.702094810666626,0.08907699052071338,6.841477676020937,4.687084851112157,9.997590081434048,8.099287700406588,2.6314127853209768,2.4390527124878547,6.8452907631977045,0.7302990713762858,4.525250859529715,5.0436577580507524,3.704925300609756,1.5163481574881854,5.1310117053299065,2.9741872206610287,7.927548658702019,7.87662250721487,0.37484810433626947,1.678441500678789,9.970102938966303,6.514278459266707,5.6379470628500865,1.9779213142056196,8.805678893868938,5.29152164043875,0.9340251176765979,5.979638627822301,7.0778205979042745,8.076264348308776,3.8577961481479495,3.3352498224476346,3.864255841320723,1.1982223118429491,0.8872688182370103,3.958617344334383,5.189209166611722,3.5078275602431375,5.994269255847621,6.9969920623763375,0.5161235510838313,3.163490369745481,2.109771318305156,2.4697904870988796,1.7452856714002851,9.765661324067967,3.349881048203467,3.92502966416727,1.5907236825944904,2.979327470327713,2.608173147761821,4.035632328827026,8.15983678428359,6.993051770637386,0.8274354356624536,2.067504214156508,0.4780900832982504,4.887574016092497,8.031245483482582,5.3122797770858465,0.9810363749163042,8.448534659271607,4.655162892962917,6.30028542639703,4.905805123640938,7.2627925914219755,1.2909633059220482,2.5275224679301256,8.616419018279664,3.631469910015881,2.623561921852653,7.9439977774221475,3.1047983282723957,2.1577380362064136,4.74258705496603,3.1130234907503818,5.035945718594544,7.280858244964687,5.235342766078124,5.5335390024655755,7.413779615871254,5.6135289909310355,6.450323929039028,1.6379688559019279,2.296847124218784,8.81433753486485,2.2228409102489355,2.3640889260531273,2.865770411050297,6.260059591674063,1.0468631723831834,9.748657528330211,5.749697103694036,6.389520720645869,0.870916121211418,2.442766178685758,2.372735757428446,1.3979477037153076,2.876234595961913,8.251059705306854,1.9605064335750644,5.916551442140392,4.874168671670285,7.8131223518688415,0.33911200783366846,9.083360735262518,9.54099856396148,4.199786929732623,7.11936812496567,0.2753311617109988,6.764428309052695,5.205933251460825,8.771999095904528,7.104076988498058,4.268722535750824,6.9848392462096776,0.5799311766570292,6.911937490858362,8.630234461944005,0.11554510647357352,3.565766142476734,1.2999565258501633,8.756088973543578,5.425674523702058,7.110874168689289,8.83008384061486,7.019167525042446,2.430665087318169,9.239292400248573,6.36316078162527,3.4507915565925606,8.014012371934296,6.643909237840897,1.1307607175375889,5.758499660225366,2.9344524927637616,6.655407941589317,4.89981603611141,5.837779241109075,9.129454208810085,7.393963549262194,0.4954389609163101,6.676757269543865,5.899571612498004,7.23499148063989,6.063768289462928,4.306950588174447,8.01483275343898,3.1547054597308266,2.403826675647196,3.3047173778640038,7.1547739053574455,9.873908738373238,7.964168287147442,3.857459660641065,6.45230562315533,0.2604033590478738,4.851289131297678,4.771466624936103,6.002813504583743,4.842177996626544,1.0265556999954706,4.985612438019327,3.9261014533492,9.023957699275693,6.9983058340804005,4.60210590402951,9.477439955110125,9.683018939314891,5.456487326079264,7.220915498500544,8.383493230332622,4.768666333232554,6.7464540513394216,8.534441410288805,6.78769015992258,0.8616990594284468,8.873234028893826,9.117119338013463,8.052775369195128,4.5182038413881465,3.502637942602429,4.297652241283498,6.222266484528911,8.489966078059183,6.717917893819358,8.219086540055935,3.150782575733584,3.8533036919468344,6.0229106936834675,1.8875553581504212,3.8816616195419074,5.6722490158448435,0.12419493329317577,6.309389940918331,9.703727544473201,3.3167412737185997,5.768872495385646,7.2008711060076696,6.77199335792894,7.793813256776052,2.670249281067927,4.493070252811629,5.9543800418039305,8.56562040768915,0.9324928814782241,8.071816197931103,2.2263674306563352,9.24542250318973,2.4752782491659,0.13167460622032445,0.5644022748051158,3.324123952107183,5.140899891680806,7.259686784969874,4.988563601126805,2.514548612929821,8.359559193934649,5.161918225031757,8.120322227009982,9.071510042353825,1.4171294104405563,0.5280140850918724,7.42982921078247,7.249271343552919,6.104065885953789,7.994734798510182,2.720441402483047,7.280856032269187,1.1288868248988027,8.935996568266162,2.3197222973229548,4.352618993616524,9.513529917555614,7.134755592729148,0.5215713934973887,2.2431241598277674,1.373912296878932,4.3897404837997245,2.8611495252263053,1.186095579887947,3.0491756301645867,3.875315012010321,9.106738382890551,9.938608221042372,4.580993179594679,9.399339093897648,6.301392428510148,8.331495300287362,3.9607061648761244,5.843397472245535,3.0005520919868256,2.323040296290504,3.105683662850931,4.346050731656952,6.799391449159309,6.915342364936277,4.167565112434913,0.6209355129468941,7.522218605281925,5.972589094235765,1.6240369487277362,2.000946715599059,7.9825101577662245,0.10882108776895327,0.37620856255911717,7.72504262411533,3.446813992137705,1.580112146988475,0.009848535176484319,4.461277071017311,8.384761391992853,5.711540421161423,2.022827467285866,7.366171725000461,0.07182425572942464,9.244736951268628,2.729889445786209,9.408686569992991,3.3351429687560574,2.6988354138594306,2.9056706069932825,1.4332778868294693,7.92253581752115,1.3469771937344954,9.68702311199819,9.223181166356728,0.003682103353874755,9.697344905414136,1.8604684486318401,1.5173864437570672,7.467855251306094,8.76545764544672,2.5829429368270085,1.6822348069990722,4.439348475561928,5.442283981578264,6.909980669303131,3.802557134927047,0.6546076220251917,6.147356649017417,2.469668945934038,3.3575797308346056,7.968116902491635,3.4010977128461484,4.697052159039643,8.539512808295346,4.9503359388033985,2.4997739002489716,7.896338082525888,1.7028103984983223,9.130309534810815,7.308329048204703,1.932502117356063,5.955241355470447,0.6801380284482472,6.454967677748602,2.80975033961411,2.201496437187347,6.490982083420553,0.47696962252206543,8.224854566379014,4.404094914944736,6.611258715580086,2.5123680557107497,0.21313774328287405,4.138983171245563,8.137244910037433,4.659518375743287,0.28690106852675035,9.933352643453457,0.6283380138794148,3.2997213220469757,6.652697475480527,4.870083071964066,4.880202138902203,8.667195346417083,0.7892484315313308,9.8438527826037,3.740706983718003,8.827725042658612,1.3628456163371916,3.4757460208808677,3.64846475351406,5.667466024926244,0.4767170171935464,7.364646766421372,0.2105731433984559,9.73653347417827,8.705357710784899,5.972038106632651,6.554287323870347,7.8901873491003,5.1257538476869,1.413753227582757,5.68273358553864,0.5294580669259008,9.87620724751822,6.587063269740774,1.9556654894377634,9.782151061146372,8.190012511849877,6.75568451357946,7.029980512535083,1.1941259818250605,4.0115586564063666,4.014311510275215,4.8305514547271855,9.07375304311321,3.897194055601352,1.619729237502776,9.02418263206177,5.7897698333341925,9.224955064994322,5.4870735058045605,4.002511987575774,7.781983086832101,1.2368694007841818,9.916081672986444,6.021420668947195,4.601431516695282,2.692040634638666,3.512510585907531,6.081203290213091,8.619652610467341,1.3642874807592698,0.6193402642559898,9.916722911193974,3.2811162723633513,2.1264205303501638,0.7728557224481203,7.7400193914218285,8.4281752581702,3.8336836109941363,4.672685817102968,6.571179799380689,5.471163475810541,9.556551723526406,5.435103997608359,7.208852704696871,5.885344379162662,1.5247501095343918,2.6837287814821598,0.965351172657769,1.836096000813805,9.567315514572126,4.945680726727724,3.125140583427448,6.5041208252653675,3.4001032959673405,8.12493485243855,7.013070642080992,8.758555928906715,8.656136454353584,2.316720695110206,0.9723550404657622,7.373211591662557,6.356032787580124,9.722858279804186,5.919350153102072,3.581437527843472,1.0166633640020817,7.9172712569855985,8.26225348908178,8.821322081313316,5.278346629149717,5.1980812010003845,6.914661910169491,1.4489966336354665,6.549312040636743,7.756625697005486,5.707899286483968,6.007884112102014,5.78026853956501,5.344838345139733,5.9785512774355976,4.130856129275178,0.02498837080365135,5.946479594928318,7.309138458652331,1.5351869569230248,9.28699619662564,9.556462231033331,6.761771575215397,8.979130140460985,5.560148249646262,6.2019786198446365,3.245307098893364,3.10364568558247,0.5914612237164407,3.6214353529254684,4.108132528087736,2.764070639319669,8.585529704802992,3.615363952658468,8.574767541872667,2.2860517304957106,5.038735359574202,8.36753602404605,9.638238451149416,0.934192205395965,1.8371243809667703,2.9912700617238763,7.242693963772766,0.6325337092289862,2.3044211966810657,8.46641167748376,5.722899364936067,5.326688861359736,0.9490118016013604,0.20938604310455133,6.73105806884331,4.921429774826118,5.353447212191542,2.7215698253957243,7.370585403980405,4.091502823243534,3.3665566343575826,0.31184770899209013,2.3076660956523587,9.035098989800403,8.247240855814027,0.19377869468188313,8.83384978360082,8.153542773885485,4.592384341495752,3.5368998603503154,4.416915993713147,1.7042503438708967,8.542238036214458,9.92520461482548,8.814604419247651,8.985989294109022,0.6824075557789611,4.202518131812982,0.42745844650006637,8.958443004018985,5.206314291118361,8.309935177756804,8.87493209351729,3.468474802864996,9.236814636936083,0.22521225619695828,5.801962514322064,3.638453567598432,5.909147213555106,7.650748266557046,4.620566058694823,7.147041731111017,3.7635441474134868,7.299599365153034,9.095716731063064,3.835616328608067,0.5303744890114537,4.360771079674555,4.764780825797046,2.4737928418207233,3.834662800360946,8.183004286928186,3.398028100347148,8.890186802368522,1.7819943832428575,0.45590419488574563,3.1163854366340327,0.6282895530086852,7.789140871329989,4.441259923688909,3.870205017673196,1.7807722781157254,1.5629101867557615,8.375359410561991,3.3438033838013936,7.085508939814633,7.914948585890889,6.511103868117491,0.34514465539883243,1.8129852834074578,4.345569974503698,4.027517759037897,1.2359777909535108,7.330360454292062,6.331999203878245,3.387594924806583,6.149696584301618,1.0512396520429457,9.985727245644604,3.8879345207777027,8.605625315757287,6.674643854554194,1.0040385249436157,8.358692913254298,6.454419332889987,3.628525199606245,7.564894569849116,3.093764376555077,2.14814542313587,0.3291581729926074,0.957514545692908,0.46014625438792756,5.119509355808473,3.7214756394377546,9.341504219896015,4.837231626590233,8.179404163082173,8.625584040855639,1.6659607989518244,6.67234092634933,3.4421502200243137,3.6498860545265677,7.917236974767059,0.9237533622467664,0.5908492412662647,6.5306858067764395,4.786784061184701,6.937281718932722,1.973463209318731,9.149913555915193,8.099826119681053,9.016500478882964,8.779376913396755,1.5562331573403299,1.993110025083753,1.2285524115755075,9.052326554107562,6.342819649830609,6.232436333234914,5.493001904903478,4.9390436359612355,7.646827931786111,6.228396931740916,2.7848963014609662,6.583016888273397,9.82058388473368,2.9269764863524173,0.33108836889970794,9.199920565229075,1.6731129916609921,3.878812845453512,0.9044761560672998,0.7778197756691507,0.5211277908549206,7.5370100335356245,4.582375603668898,4.773947321420049,6.1973827334301745,2.1418767208084,1.7773195027405375,0.0462533185769165,9.516987410821214,0.8251846955213704,2.7350947429726857,6.656379018021401,1.2385856224915948,0.09076528211837909,7.301499302803167,5.908188367345115,7.146360016077269,5.786936691769792,8.669699203184987,3.353237539346574,2.407929527929298,1.088298955125615,7.38902782205731,6.085930522363332,4.970363162165219,7.381034256487418,4.453055823868164,9.290797362517171,4.424967979257968,1.9418049085527045,4.43632139451921,5.595056851464733,7.2555790214523,4.629734690282302,4.43736820668904,5.048624911418791,6.287205279007104,6.157368311583076,6.46230436753934,8.47341300456489,8.08407164137037,0.3086964344367571,4.15778172375469,3.279861182998536,6.903500003413738,6.887196801568177,2.7344618623123274,1.0386211920214161,3.334333876712481,6.162612694806637,5.840425079880784,7.137709251890321,1.8342725333542176,0.9040926923324166,8.553006283513632,4.021752852858096,0.2672470199338317,7.660855370654791,7.258098310722834,1.93611997030543,2.194041584570634,3.5857930221161793,4.223364345556124,4.016308610746018,4.6977602230106985,3.5937974694914154,2.29581838738963,6.467630695703061,2.720147043206429,7.484368056456376,6.3993022648881865,8.000921033140017,5.264036024267911,6.917401195969266,8.809472561526302,2.5537015048468947,6.43065523625107,5.2244203332786965,9.900105735272692,4.656953386642259,4.403711681201081,5.7927357787569145,1.199407901639602,9.362922592844779,4.0875040243650655,9.29113500038772,3.715065811895435,9.81045063976083,2.6909874444038717,3.149969339043859,7.898323328812813,7.029496588649278,4.022979554760857,1.9795323244534546,8.236585764793436,8.994805898772547,6.206326193720512,3.390424402360339,3.338523685565804,8.225075558717975,5.764817415368652,7.951952993975484,5.292677635344405,5.258655310646725,9.648568900013824,5.199987906434607,1.6371231578467604,7.379653029550132,3.107346396574646,5.675240000844413,6.161085508965362,3.6807768605446833,6.3103834626630695,0.4642094703187172,1.3567354529814013,9.681095616521008,0.2150491972876134,3.0977015228014415,5.0069889093482,8.683691838267594,6.079272423826392,6.1782665637089025,3.9606721115590715,6.613392176980357,5.350946791675053,9.439289789946251,6.442806409729684,8.144744959247848,3.7284978023571846,1.1318881818750515,5.004619206928207,6.5193673826181975,9.8483945377053,0.06026341053126272,2.000325776241132,3.4458162148005655,5.537301908006114,1.987137536692376,1.3040466196270284,3.084115227909563,4.349421454562446,1.6622051156684647,7.810094040454334,1.9117046288580908,3.458897602501614,4.242878410034836,0.12312142124601078,6.498211616656793,9.504207950000048,4.853397801239964,8.182843289700234,2.7215351775476937,0.273328539635298,5.41876692667768,0.15049810774748984,1.7694651271670647,4.251034418974515,0.40444763662870864,7.915560934155268,2.747616686522696,9.123935818889759,8.535642109559936,2.546751620819465,3.490419262621065,3.7363080087339173,0.5672507279563965,9.069422813439687,0.9626503009857368,3.48034828698101,0.9348545958662546,0.22001017390311128,1.6323565142098118,4.232392508636121,9.841697206265776,5.019349590687319,1.482093063324681,4.938887561187042,6.339969217095729,9.358941920244792,1.2344881631896198,4.54007669000998,4.938402255384267,1.8770751610395253,6.884873512997984,7.746786917409225,3.7260957246125415,9.920416953978465,5.703505174308914,6.6697642884359105,6.347877246668697,3.583880740692962,2.325403054899844,2.7295939656727786,1.2502783159311504,2.658789177805194,8.652684680849731,8.396692652259299,2.941109168127698,9.243968958926416,2.00549797656123,2.8522640130584787,1.9483779159033765,5.440967774933007,1.6647597705045691,9.92120265606836,6.568110673072864,1.6026038200472348,2.254669106438305,6.984029109099124,1.0786016292764455,2.2228983778026934,4.543911240951967,8.592589536015645,5.9261565536905785,4.201938021055886,3.981350416543603,1.3047940813053627,1.6869976817009324,2.9583570527857717,4.870065056954163,3.4871689703001785,1.932868543540709,1.9038169878626832,7.102172372585677,0.1302461489127249,3.275377195760849,9.967603532441283,8.01720517147147,7.071706363541277,1.4609522832820576,3.1059654644607204,2.81065614610726,8.054219106336776,6.738167886073663,6.122449376612382,8.218229934315575,4.838417139334743,1.7832570580155926,1.7070580854323159,5.968267764045965,1.4005254579833437,9.844644601279484,1.2958661200998,5.031481459455267,9.689412807764965,2.203933354245957,6.299453797183714,8.15496491715562,8.925567541302513,7.844721671354337,8.151296542253235,2.0889498063173617,1.5364257197628972,1.0895292740572393,5.594542184403057,0.3851908115324587,9.211168710106367,2.7437008522323736,8.405441709859778,0.47497228420846804,7.130104033151017,1.786103232452061,0.5631356266492915,6.726460539244301,9.749054097941654,9.07524732413497,2.16430089476773,0.49375059500509355,3.3829035999422197,9.023169687564527,8.709262404822669,6.818821598637492]} \ No newline at end of file diff --git a/test/fixtures/julia/runner.jl b/test/fixtures/julia/runner.jl new file mode 100644 index 0000000..c837e85 --- /dev/null +++ b/test/fixtures/julia/runner.jl @@ -0,0 +1,88 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2018 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import Distributions: logpdf, Erlang +import JSON + +""" + gen( x, k, lambda, name ) + +Generate fixture data and write to file. + +# Arguments + +* `x`: input value +* `k`: shape parameter +* `lambda`: rate parameter +* `name::AbstractString`: output filename + +# Examples + +``` julia +julia> x = rand( 1000 ) .* 20.0; +julia> k = round.( Int64, ( rand( 1000 ) .* 10.0 ) .+ 10.0 ); +julia> lambda = rand( 1000 ) .* 20.0; +julia> gen( x, k, lambda, "data.json" ); +``` +""" +function gen( x, k, lambda, name ) + z = Array{Float64}( undef, length(x) ); + for i in eachindex(x) + z[ i ] = logpdf( Erlang( k[i], 1/lambda[i] ), x[i] ); + end + + # Store data to be written to file as a collection: + data = Dict([ + ("x", x), + ("k", k), + ("lambda", lambda), + ("expected", z) + ]); + + # Based on the script directory, create an output filepath: + filepath = joinpath( dir, name ); + + # Write the data to the output filepath as JSON: + outfile = open( filepath, "w" ); + write( outfile, JSON.json(data) ); + close( outfile ); +end + +# Get the filename: +file = @__FILE__; + +# Extract the directory in which this file resides: +dir = dirname( file ); + +# Large shape parameter: +x = rand( 1000 ) .* 5.0; +k = round.( Int64, rand( 1000 ) .* 10.0 ) .+ 10; +lambda = rand( 1000 ) .* 10.0; +gen( x, k, lambda, "large_shape.json" ); + +# Large rate parameter: +x = rand( 1000 ) .* 5.0; +k = round.( Int64, ( rand( 1000 )*10.0 ) .+ 0.5 ); +lambda = ( rand( 1000 ) .* 10.0 ) .+ 10.0; +gen( x, k, lambda, "large_rate.json" ); + +# Both large: +x = rand( 1000 ) .* 5.0; +k = round.( Int64, rand( 1000 ) .* 10.0 ) .+ 10; +lambda = ( rand( 1000 ) .* 10.0 ) .+ 10.0; +gen( x, k, lambda, "both_large.json" ); diff --git a/test/test.factory.js b/test/test.factory.js new file mode 100644 index 0000000..bdf48b7 --- /dev/null +++ b/test/test.factory.js @@ -0,0 +1,253 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math-base-assert-is-nan' ); +var abs = require( '@stdlib/math-base-special-abs' ); +var PINF = require( '@stdlib/constants-float64-pinf' ); +var NINF = require( '@stdlib/constants-float64-ninf' ); +var EPS = require( '@stdlib/constants-float64-eps' ); +var factory = require( './../lib/factory.js' ); + + +// FIXTURES // + +var largeRate = require( './fixtures/julia/large_rate.json' ); +var largeShape = require( './fixtures/julia/large_shape.json' ); +var bothLarge = require( './fixtures/julia/both_large.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.equal( typeof factory, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function returns a function', function test( t ) { + var logpdf = factory( 0, 1.0 ); + t.equal( typeof logpdf, 'function', 'returns a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the created function returns `NaN`', function test( t ) { + var logpdf; + var y; + + logpdf = factory( 0, 1.0 ); + y = logpdf( NaN ); + t.equal( isnan( y ), true, 'returns NaN' ); + + logpdf = factory( NaN, 1.0 ); + y = logpdf( 0.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + logpdf = factory( 1, NaN ); + y = logpdf( 0.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + logpdf = factory( NaN, NaN ); + y = logpdf( 0.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + logpdf = factory( NaN, NaN ); + y = logpdf( NaN ); + t.equal( isnan( y ), true, 'returns NaN' ); + + t.end(); +}); + +tape( 'if provided a valid `k` and `lambda`, the function returns a function which returns `-Infinity` when provided `Infinity` for `x`', function test( t ) { + var logpdf; + var y; + + logpdf = factory( 2, 1.0 ); + y = logpdf( PINF ); + t.equal( y, NINF, 'returns -Infinity' ); + + t.end(); +}); + +tape( 'if provided a valid `k` and `lambda`, the function returns a function which returns `-Infinity` when provided `-Infinity` for `x`', function test( t ) { + var logpdf; + var y; + + logpdf = factory( 2, 1.0 ); + y = logpdf( NINF ); + t.equal( y, NINF, 'returns -Infinity' ); + + t.end(); +}); + +tape( 'if provided `lambda <= 0`, the created function always returns `NaN`', function test( t ) { + var logpdf; + var y; + + logpdf = factory( 0, -1.0 ); + + y = logpdf( 2.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + y = logpdf( 0.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + logpdf = factory( 0, NINF ); + y = logpdf( 2.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + logpdf = factory( PINF, NINF ); + y = logpdf( 2.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + logpdf = factory( NINF, NINF ); + y = logpdf( 2.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + logpdf = factory( NaN, NINF ); + y = logpdf( 2.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + t.end(); +}); + +tape( 'if provided `k` is not a nonnegative integer, the created function always returns `NaN`', function test( t ) { + var logpdf; + var y; + + logpdf = factory( -1.0, 0.5 ); + y = logpdf( 2.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + y = logpdf( 0.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + logpdf = factory( 1.5, 0.5 ); + y = logpdf( 2.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + y = logpdf( 0.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + logpdf = factory( NINF, 1.0 ); + y = logpdf( 2.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + logpdf = factory( NINF, PINF ); + y = logpdf( 2.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + logpdf = factory( NINF, NINF ); + y = logpdf( 2.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + logpdf = factory( NINF, NaN ); + y = logpdf( 2.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + t.end(); +}); + +tape( 'the created function evaluates the logpdf for `x` given large `k` and `lambda`', function test( t ) { + var expected; + var lambda; + var logpdf; + var delta; + var tol; + var i; + var k; + var x; + var y; + + expected = bothLarge.expected; + x = bothLarge.x; + k = bothLarge.k; + lambda = bothLarge.lambda; + for ( i = 0; i < x.length; i++ ) { + logpdf = factory( k[i], lambda[i] ); + y = logpdf( x[i] ); + if ( y === expected[i] ) { + t.equal( y, expected[i], 'x: '+x[i]+', k: '+k[i]+', lambda: '+lambda[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 450.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. k: '+k[i]+'. lambda: '+lambda[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); + +tape( 'the created function evaluates the logpdf for `x` given a large shape parameter `k`', function test( t ) { + var expected; + var lambda; + var logpdf; + var delta; + var tol; + var i; + var k; + var x; + var y; + + expected = largeShape.expected; + x = largeShape.x; + k = largeShape.k; + lambda = largeShape.lambda; + for ( i = 0; i < x.length; i++ ) { + logpdf = factory( k[i], lambda[i] ); + y = logpdf( x[i] ); + if ( y === expected[i] ) { + t.equal( y, expected[i], 'x: '+x[i]+', k: '+k[i]+', lambda: '+lambda[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 350.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. k: '+k[i]+'. lambda: '+lambda[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); + +tape( 'the created function evaluates the logpdf for `x` given a large rate parameter `lambda`', function test( t ) { + var expected; + var lambda; + var logpdf; + var delta; + var tol; + var i; + var k; + var x; + var y; + + expected = largeRate.expected; + x = largeRate.x; + k = largeRate.k; + lambda = largeRate.lambda; + for ( i = 0; i < x.length; i++ ) { + logpdf = factory( k[i], lambda[i] ); + y = logpdf( x[i] ); + if ( y === expected[i] ) { + t.equal( y, expected[i], 'x: '+x[i]+', k: '+k[i]+', lambda: '+lambda[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 450.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. k: '+k[i]+'. lambda: '+lambda[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); diff --git a/test/test.js b/test/test.js new file mode 100644 index 0000000..e98f09b --- /dev/null +++ b/test/test.js @@ -0,0 +1,38 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var logpdf = require( './../lib' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.equal( typeof logpdf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'attached to the main export is a factory method for generating `logpdf` functions', function test( t ) { + t.equal( typeof logpdf.factory, 'function', 'exports a factory method' ); + t.end(); +}); diff --git a/test/test.logpdf.js b/test/test.logpdf.js new file mode 100644 index 0000000..2612d32 --- /dev/null +++ b/test/test.logpdf.js @@ -0,0 +1,196 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math-base-assert-is-nan' ); +var abs = require( '@stdlib/math-base-special-abs' ); +var PINF = require( '@stdlib/constants-float64-pinf' ); +var NINF = require( '@stdlib/constants-float64-ninf' ); +var EPS = require( '@stdlib/constants-float64-eps' ); +var logpdf = require( './../lib' ); + + +// FIXTURES // + +var largeRate = require( './fixtures/julia/large_rate.json' ); +var largeShape = require( './fixtures/julia/large_shape.json' ); +var bothLarge = require( './fixtures/julia/both_large.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.equal( typeof logpdf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `NaN` for any parameter, the function returns `NaN`', function test( t ) { + var y = logpdf( NaN, 1.0, 1.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + y = logpdf( 0.0, NaN, 1.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + y = logpdf( 0.0, 1.0, NaN ); + t.equal( isnan( y ), true, 'returns NaN' ); + t.end(); +}); + +tape( 'if provided `+infinity` for `x` and a finite `k` and `lambda`, the function returns `-Infinity`', function test( t ) { + var y = logpdf( PINF, 1.0, 1.0 ); + t.equal( y, NINF, 'returns -Infinity' ); + t.end(); +}); + +tape( 'if provided `-infinity` for `x` and a finite `k` and `lambda`, the function returns `-Infinity`', function test( t ) { + var y = logpdf( NINF, 1.0, 1.0 ); + t.equal( y, NINF, 'returns -Infinity' ); + t.end(); +}); + +tape( 'if provided `k <= 0`, the function returns `NaN`', function test( t ) { + var y; + + y = logpdf( 2.0, -1.0, 2.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + y = logpdf( 0.0, -1.0, 2.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + y = logpdf( 2.0, NINF, 1.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + y = logpdf( 2.0, NINF, PINF ); + t.equal( isnan( y ), true, 'returns NaN' ); + + y = logpdf( 2.0, NINF, NINF ); + t.equal( isnan( y ), true, 'returns NaN' ); + + y = logpdf( 2.0, NINF, NaN ); + t.equal( isnan( y ), true, 'returns NaN' ); + + t.end(); +}); + +tape( 'if provided `lambda <= 0`, the function returns `NaN`', function test( t ) { + var y; + + y = logpdf( 2.0, 2.0, -1.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + y = logpdf( 0.0, 2.0, -1.0 ); + t.equal( isnan( y ), true, 'returns NaN' ); + + y = logpdf( 2.0, 1.0, NINF ); + t.equal( isnan( y ), true, 'returns NaN' ); + + y = logpdf( 2.0, PINF, NINF ); + t.equal( isnan( y ), true, 'returns NaN' ); + + y = logpdf( 2.0, NINF, NINF ); + t.equal( isnan( y ), true, 'returns NaN' ); + + y = logpdf( 2.0, NaN, NINF ); + t.equal( isnan( y ), true, 'returns NaN' ); + + t.end(); +}); + +tape( 'the function evaluates the logpdf for `x` given large `k` and `lambda`', function test( t ) { + var expected; + var lambda; + var delta; + var tol; + var i; + var k; + var x; + var y; + + expected = bothLarge.expected; + x = bothLarge.x; + k = bothLarge.k; + lambda = bothLarge.lambda; + for ( i = 0; i < x.length; i++ ) { + y = logpdf( x[i], k[i], lambda[i] ); + if ( y === expected[i] ) { + t.equal( y, expected[i], 'x: '+x[i]+', k: '+k[i]+', lambda: '+lambda[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 450.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. k: '+k[i]+'. lambda: '+lambda[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); + +tape( 'the function evaluates the logpdf for `x` given large shape parameter `k`', function test( t ) { + var expected; + var lambda; + var delta; + var tol; + var i; + var k; + var x; + var y; + + expected = largeShape.expected; + x = largeShape.x; + k = largeShape.k; + lambda = largeShape.lambda; + for ( i = 0; i < x.length; i++ ) { + y = logpdf( x[i], k[i], lambda[i] ); + if ( y === expected[i] ) { + t.equal( y, expected[i], 'x: '+x[i]+', k: '+k[i]+', lambda: '+lambda[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 350.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. k: '+k[i]+'. lambda: '+lambda[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); + +tape( 'the function evaluates the logpdf for `x` given large rate parameter `lambda`', function test( t ) { + var expected; + var lambda; + var delta; + var tol; + var i; + var k; + var x; + var y; + + expected = largeRate.expected; + x = largeRate.x; + k = largeRate.k; + lambda = largeRate.lambda; + for ( i = 0; i < x.length; i++ ) { + y = logpdf( x[i], k[i], lambda[i] ); + if ( y === expected[i] ) { + t.equal( y, expected[i], 'x: '+x[i]+', k: '+k[i]+', lambda: '+lambda[i]+', y: '+y+', expected: '+expected[i] ); + } else { + delta = abs( y - expected[ i ] ); + tol = 450.0 * EPS * abs( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. k: '+k[i]+'. lambda: '+lambda[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +});