{"id":19936585,"url":"https://github.com/leftaroundabout/linearmap-family","last_synced_at":"2025-10-14T22:31:01.051Z","repository":{"id":43810586,"uuid":"64621805","full_name":"leftaroundabout/linearmap-family","owner":"leftaroundabout","description":"Purely-functional, coordinate-free linear algebra","archived":false,"fork":false,"pushed_at":"2025-06-01T18:45:10.000Z","size":882,"stargazers_count":30,"open_issues_count":4,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-10T15:25:24.381Z","etag":null,"topics":["functional-analysis","haskell","linear-algebra"],"latest_commit_sha":null,"homepage":"http://hackage.haskell.org/package/linearmap-category","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leftaroundabout.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,"zenodo":null}},"created_at":"2016-07-31T23:55:01.000Z","updated_at":"2025-10-06T19:34:34.000Z","dependencies_parsed_at":"2025-01-15T23:16:59.795Z","dependency_job_id":"019d2523-97ba-495e-92c3-9715814c7cb7","html_url":"https://github.com/leftaroundabout/linearmap-family","commit_stats":{"total_commits":377,"total_committers":4,"mean_commits":94.25,"dds":0.4084880636604774,"last_synced_commit":"3a28b2793e4376f6d9258abb587be38bc5b61fa7"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/leftaroundabout/linearmap-family","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leftaroundabout%2Flinearmap-family","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leftaroundabout%2Flinearmap-family/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leftaroundabout%2Flinearmap-family/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leftaroundabout%2Flinearmap-family/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leftaroundabout","download_url":"https://codeload.github.com/leftaroundabout/linearmap-family/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leftaroundabout%2Flinearmap-family/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279021785,"owners_count":26087056,"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-10-14T02:00:06.444Z","response_time":60,"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":["functional-analysis","haskell","linear-algebra"],"created_at":"2024-11-12T23:27:20.490Z","updated_at":"2025-10-14T22:31:00.678Z","avatar_url":"https://github.com/leftaroundabout.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.com/leftaroundabout/linearmap-family.svg?branch=master)](https://travis-ci.com/leftaroundabout/linearmap-family)\n\nThis project has two goals:\n\n### To give Haskell a competitive, _native_ linear algebra library\n\nThat is, a library that supports:\n\n1. Basic vector operations ✓\n2. Efficient linear maps ✓\n3. Solving linear equations\n  1. Inversion of finite-dimensional, linear isomorphisms (full-rank matrices) ✓\n  2. Least-squares solution to under/overdetermined problems (?)\n  3. Fast iterative methods (for large sparse systems, e.g. conjugate gradient) ✗\n4. Eigenvalue problems ✓\n5. Singular value decomposition ✗\n\nAt the moment, the only Haskell libraries that offer all of that appear to be\n[hmatrix](http://hackage.haskell.org/package/hmatrix) and [eigen](http://hackage.haskell.org/package/eigen),\nwhich use bindings to the [GSL](https://www.gnu.org/software/gsl/) (C)\nand [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page) (C++) libraries.\n\n- Eigen is a great project that uses the C++ template system for both an elegant interface and nice optimisations.\n  However, this interface doesn't really translate that nicely over to Haskell. The C interface layer necessary\n  forgets much of the template niceties.\n- GSL is extremely comprehensive and well-suited for binding to other languages, in particular dynamic languages.\n  However, it's a bit of a messy _big collection of all kind of algorithms_, and not exactly the fastest library,\n  which adds to the general overhead of calling to external code with C-marshalled memory.\n\n### To get rid of those pesky matrices\n\nLinear algebra isn't really about matrices. Vectors aren't _really_ arrays of numbers.\n\nWhat LA is really about are _points in vector spaces_, and ultimately geometric relations between them.\nAnd many interesting spaces aren't even finite-dimensional.\n\nRegardless of whether matrices are used for the internal operations – and in fact, it's not so clear if\nthis is always a good idea! – matrices shouldn't dominate the API of a linear algebra library.\nHaskell has managed to bring a lot innovation to the world of programming languages.\nIt can nicely work with infinite, lazy data structures.\nHopefully it can also make a bit of a revolution in the field of linear algebra!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleftaroundabout%2Flinearmap-family","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleftaroundabout%2Flinearmap-family","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleftaroundabout%2Flinearmap-family/lists"}