{"id":24865217,"url":"https://github.com/diku-dk/sml-sobol","last_synced_at":"2026-02-15T20:33:45.060Z","repository":{"id":148050643,"uuid":"338308457","full_name":"diku-dk/sml-sobol","owner":"diku-dk","description":"Standard ML library for Sobol sequences","archived":false,"fork":false,"pushed_at":"2023-10-01T10:14:27.000Z","size":12,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-10-11T09:43:09.435Z","etag":null,"topics":["smlpkg"],"latest_commit_sha":null,"homepage":"","language":"Standard ML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/diku-dk.png","metadata":{"files":{"readme":"README.md","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}},"created_at":"2021-02-12T12:09:11.000Z","updated_at":"2024-05-23T08:17:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"d71e501f-1e2b-4a6c-a29b-5cbdbb74aae6","html_url":"https://github.com/diku-dk/sml-sobol","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/diku-dk/sml-sobol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diku-dk%2Fsml-sobol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diku-dk%2Fsml-sobol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diku-dk%2Fsml-sobol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diku-dk%2Fsml-sobol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diku-dk","download_url":"https://codeload.github.com/diku-dk/sml-sobol/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diku-dk%2Fsml-sobol/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29488599,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T19:29:10.908Z","status":"ssl_error","status_checked_at":"2026-02-15T19:29:10.419Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["smlpkg"],"created_at":"2025-01-31T23:58:09.472Z","updated_at":"2026-02-15T20:33:45.044Z","avatar_url":"https://github.com/diku-dk.png","language":"Standard ML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sml-sobol [![CI](https://github.com/diku-dk/sml-sobol/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-sobol/actions)\n\nStandard ML package for generating Sobol sequences.\n\nThis library is a convenient and modular library for efficiently\ngenerating large quantities of quasi-random numbers (in multiple\ndimensions) in a parallel and purely functional setting. Sobol numbers\nare particularly useful for Monte Carlo simulations, which are a core\napplication of massive parallelism.\n\nSobol sequences are quasi-random low-discrepancy sequences frequently\nused in Monte-Carlo algorithms and they generalize nicely to multiple\ndimensions. Sobol sequences are superior to traditional pseudo-random\nnumbers for numeric integration (by Monte-Carlo simulation). Sobol\nsequences simply span the space much better than their pseudo-random\ncounterparts. In fact, it has been shown that while the value of a\nmulti-dimensional integral for a continuous and differentiable\nfunction can be approximated with a convergence rate of _1/n_ using\npseudo-random numbers, using Sobol sequences, the convergence rate is\n_1/sqrt(n)_.\n\nFor a discussion of the implementation, please consult [1].\n\n\n\n## Overview of MLB files\n\n- `lib/github.com/diku-dk/sml-sobol/sobol.mlb`:\n\n  - **signature** [`SOBOL_DIR`](lib/github.com/diku-dk/sml-sobol/sobol_dir.sig)\n  - **structure** `SobolDir50` :\u003e `SOBOL_DIR`\n  - **signature** [`SOBOL`](lib/github.com/diku-dk/sml-sobol/sobol.sig)\n  - **functor** `Sobol (sig val D : int structure SobolDir : SOBOL_DIR end) :\u003e SOBOL`\n\n## Installing the package\n\nThis library is set up to work well with the SML package manager\n[smlpkg](https://github.com/diku-dk/smlpkg).  To use the package, in\nthe root of your project directory, execute the command:\n\n```\n$ smlpkg add github.com/diku-dk/sml-sobol\n```\n\nThis command will add a _requirement_ (a line) to the `sml.pkg` file in your\nproject directory (and create the file, if there is no file `sml.pkg`\nalready).\n\nTo download the library into the directory\n`lib/github.com/diku-dk/sml-sobol`, execute the command:\n\n```\n$ smlpkg sync\n```\n\nYou can now reference the `mlb`-file using relative paths from within\nyour project's `mlb`-files.\n\nNotice that you can choose either to treat the downloaded package as\npart of your own project sources (vendoring) or you can add the\n`sml.pkg` file to your project sources and make the `smlpkg sync`\ncommand part of your build process.\n\n## Using the package\n\nSee the files\n[sobol-test.mlb](lib/github.com/diku-dk/sml-sobol/test/sobol-test.mlb)\nand\n[sobol-test.sml](lib/github.com/diku-dk/sml-sobol/test/sobol-test.sml)\nfor a demonstration of how to use the package. See below for an image created using `sobol-test.exe`.\n\n## Authors\n\nCopyright (c) 2015-2021 Martin Elsman, Troels Henriksen, University of\nCopenhagen, DIKU. Partly ported from the [Futhark Sobol library](https://github.com/diku-dk/sobol).\n\n## References\n\n[1] Troels Henriksen, Martin Elsman, and Cosmin E. Oancea. __Modular\nAcceleration: Tricky Cases of Functional High-Performance\nComputing__. In _Proceedings of the 6th ACM SIGPLAN workshop on\nFunctional High-Performance Computing (FHPC ‘18)_. St. Louis, Missouri,\nUSA. September 2018.\n\n## Appendix : Output Image for `sobol-test.exe`\n\nThe image below is created with the following commands:\n\n```\n$ cd lib/github.com/diku-dk/sml-sobol/test/\n$ make sobol-test.exe\n$ ./sobol-test.exe -N 10000 -f out.ppm \u0026\u0026 convert out.ppm out.png\n```\n\nHere is the image:\n\n![image](https://user-images.githubusercontent.com/1167803/107779072-2a03df80-6d45-11eb-88aa-64e2e96fc120.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiku-dk%2Fsml-sobol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiku-dk%2Fsml-sobol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiku-dk%2Fsml-sobol/lists"}