{"id":34066030,"url":"https://github.com/abmantz/lmc","last_synced_at":"2025-12-14T06:09:46.761Z","repository":{"id":62576464,"uuid":"77856079","full_name":"abmantz/lmc","owner":"abmantz","description":"Logarithmantic Monte Carlo","archived":false,"fork":false,"pushed_at":"2024-08-12T22:57:58.000Z","size":940,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-28T11:33:14.381Z","etag":null,"topics":["monte-carlo","python","sampler"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abmantz.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-01-02T19:16:05.000Z","updated_at":"2024-08-12T22:58:02.000Z","dependencies_parsed_at":"2025-09-13T17:00:18.889Z","dependency_job_id":null,"html_url":"https://github.com/abmantz/lmc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/abmantz/lmc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abmantz%2Flmc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abmantz%2Flmc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abmantz%2Flmc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abmantz%2Flmc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abmantz","download_url":"https://codeload.github.com/abmantz/lmc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abmantz%2Flmc/sbom","scorecard":{"id":161282,"data":{"date":"2025-08-11","repo":{"name":"github.com/abmantz/lmc","commit":"a7b65513a54beaf0b5a54de0d08ea818ad01cdea"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/10 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU Lesser General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 24 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T13:30:49.608Z","repository_id":62576464,"created_at":"2025-08-16T13:30:49.608Z","updated_at":"2025-08-16T13:30:49.608Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27719208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-14T02:00:11.348Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["monte-carlo","python","sampler"],"created_at":"2025-12-14T06:09:46.129Z","updated_at":"2025-12-14T06:09:46.754Z","avatar_url":"https://github.com/abmantz.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. image:: https://img.shields.io/badge/ascl-1706.005-blue.svg?colorB=262255\n   :alt: ascl:1706.005\n   :target: http://ascl.net/1706.005\n.. image:: https://img.shields.io/pypi/v/lmc.svg\n   :alt: PyPi\n   :target: https://pypi.python.org/pypi/lmc\n.. image:: https://img.shields.io/pypi/l/lmc.svg\n   :alt: LGPL-3.0\n   :target: https://www.gnu.org/licenses/lgpl-3.0.txt\n\n=====================================================================================\nLogarithmantic Monte Carlo (LMC)\n=====================================================================================\n\n----------------------------------------\nPython code for Markov Chain Monte Carlo\n----------------------------------------\n\n`Logarithmancy \u003chttps://en.wiktionary.org/wiki/logarithmancy\u003e`_ (n): divination by means of algorithms\n\nWhat is this?\n=============\n\n``LMC`` (not to be confused with the Large Magellanic Cloud) is a bundle of Python code for performing Markov Chain Monte Carlo, which implements a few different multidimensional proposal strategies and (optionally parallel) adaptation methods. There are similar packages out there, notably `pymc \u003chttps://github.com/pymc-devs/pymc\u003e`_ - ``LMC`` exists because I found the alternatives to be too inflexible for the work I was doing at the time. On the off chance that someone else is in the same boat, here it is.\n\nThe samplers currently included are Metropolis, slice, and the affine-invariant sampler popularized by `emcee \u003chttp://dan.iel.fm/emcee\u003e`_ (`Goodman \u0026 Weare 2010 \u003chttp://dx.doi.org/10.2140/camcos.2010.5.65\u003e`_).\n\nAn abridged description of the package (from the `help` function) is copied here::\n\n The module should be very flexible, but is designed with these things foremost in mind:\n  1. use with expensive likelihood calculations which probably have a host of hard-to-modify\n     code associated with them.\n  2. making it straightforward to break the parameter space into subspaces which can be sampled\n     using different proposal methods and at different rates. For example, if changing some\n     parameters requires very expensive calulations in the likelihood, the other, faster\n     parameters can be sampled at a higher rate. Or, some parameters may lend themselves to\n     Gibbs sampling, while others may not, and these can be block updated independently.\n  3. keeping the overhead low to facilitate large numbers of parameters. Some of this has been\n     lost in the port from C++, but, for example, the package provides automatic tuning of the\n     proposal covariance for block updating without needing to store traces of the parameters in\n     memory.\n\n Real-valued parameters are usually assumed, but the framework can be used with other types of \n parameters, with suitable overloading of classes.\n\n A byproduct of item (1) is that the user is expected to handle all aspects of the calculation of \n the posterior. The module doesn't implement assignment of canned, standard priors, or automatic \n discovery of shortcuts like conjugate Gibbs sampling. The idea is that the user is in the best \n position to know how the details of the likelihood and priors should be implemented.\n\n Communication between parallel chains can significantly speed up convergence. In parallel mode, \n adaptive Updaters use information from all running chains to tune their proposals, rather than \n only from their own chain. The Gelman-Rubin convergence criterion (ratio of inter- to intra-chain \n variances) for each free parameter is also calculated. Parallelization is implemented in two ways; \n see ?Updater for instructions on using each.\n  1. Via MPI (using mpi4py). MPI adaptations are synchronous: when a chain reaches a communication\n     point, it stops until all chains have caught up.\n  2. Via the filesystem. When a chain adapts, it will write its covariance information to a file. It\n     will then read in any information from other chains that is present in similar files, and\n     incorporate it when tuning. This process is asynchronous; chains will not wait for one another; \n     they will simply adapt using whatever information has been shared at the time. \n\n\nInstallation\n============\n\nAutomatic\n---------\n\nInstall from PyPI by running ``pip install lmc``.\n\nManual\n------\n\nDownload ``lmc/lmc.py`` and put it somewhere on your ``PYTHONPATH``. You will need to have the ``numpy`` package installed. The ``mpi4py`` package is optional, but highly recommended.\n\nUsage and Help\n==============\n\nDocumentation can be found throughout ``lmc.py``, mostly in the form of docstrings, so it's also available through the Python interpreter. There's also a ``help()`` function (near the top of the file, if you're browsing) and an ``example()`` function (near the bottom).\n\nThe examples can also be browsed `here \u003chttps://github.com/abmantz/lmc/tree/master/examples\u003e`_.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabmantz%2Flmc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabmantz%2Flmc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabmantz%2Flmc/lists"}