{"id":16336330,"url":"https://github.com/basvandijk/scientific","last_synced_at":"2025-05-15T23:07:49.887Z","repository":{"id":11355727,"uuid":"13788113","full_name":"basvandijk/scientific","owner":"basvandijk","description":"Arbitrary-precision floating-point numbers represented using scientific notation","archived":false,"fork":false,"pushed_at":"2024-12-20T18:32:36.000Z","size":334,"stargazers_count":74,"open_issues_count":11,"forks_count":40,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-03T02:08:36.667Z","etag":null,"topics":["haskell","numbers","scientific-notation"],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/basvandijk.png","metadata":{"files":{"readme":"README.md","changelog":"changelog","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":"2013-10-22T22:52:19.000Z","updated_at":"2024-12-07T18:12:16.000Z","dependencies_parsed_at":"2023-10-15T11:15:03.808Z","dependency_job_id":"1ca3c20b-f760-48f6-aef5-c0edcdf6defa","html_url":"https://github.com/basvandijk/scientific","commit_stats":{"total_commits":190,"total_committers":19,"mean_commits":10.0,"dds":"0.21578947368421053","last_synced_commit":"224f38f17d23a8a8b87fd533579df4a3ad7ebb8c"},"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basvandijk%2Fscientific","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basvandijk%2Fscientific/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basvandijk%2Fscientific/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basvandijk%2Fscientific/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basvandijk","download_url":"https://codeload.github.com/basvandijk/scientific/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254043432,"owners_count":22004954,"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","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":["haskell","numbers","scientific-notation"],"created_at":"2024-10-10T23:43:49.973Z","updated_at":"2025-05-15T23:07:43.882Z","avatar_url":"https://github.com/basvandijk.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Hackage](https://img.shields.io/hackage/v/scientific.svg)](https://hackage.haskell.org/package/scientific)\n[![Build Status](https://travis-ci.org/basvandijk/scientific.svg)](https://travis-ci.org/basvandijk/scientific)\n\n`Data.Scientific` provides a space efficient and arbitrary precision\nscientific number type.\n\n`Scientific` numbers are represented using\n[scientific notation](http://en.wikipedia.org/wiki/Scientific_notation). It uses\na coefficient `c :: Integer` and a base-10 exponent `e :: Int` (do note that\nsince we're using an `Int` to represent the exponent these numbers aren't truly\narbitrary precision. I intend to change this to Integer in the future!). A\nscientific number corresponds to the `Fractional` number:\n`fromInteger c * 10 ^^ e`.\n\nThe main application of `Scientific` is to be used as the target of parsing\narbitrary precision numbers coming from an untrusted source. The advantages over\nusing `Rational` for this are that:\n\n* A `Scientific` is more efficient to construct. Rational numbers need to be\nconstructed using `%` which has to compute the `gcd` of the `numerator` and\n`denominator`.\n\n* `Scientific` is safe against numbers with huge exponents. For example:\n`1e1000000000 :: Rational` will fill up all space and crash your\nprogram. Scientific works as expected:\n\n```\n \u003e read \"1e1000000000\" :: Scientific\n 1.0e1000000000\n ```\n\n* Also, the space usage of converting scientific numbers with huge exponents to\nIntegral's (like: `Int`) or RealFloats (like: `Double` or `Float`) will always\nbe bounded by the target type.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasvandijk%2Fscientific","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbasvandijk%2Fscientific","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasvandijk%2Fscientific/lists"}