{"id":32154084,"url":"https://github.com/timweiland/gaussianmarkovrandomfields.jl","last_synced_at":"2025-10-21T11:50:59.741Z","repository":{"id":281268414,"uuid":"827801443","full_name":"timweiland/GaussianMarkovRandomFields.jl","owner":"timweiland","description":"Bayesian inference on spatial and spatiotemporal data, faster than you can say \"Cholesky!\"","archived":false,"fork":false,"pushed_at":"2025-10-18T22:01:50.000Z","size":67713,"stargazers_count":12,"open_issues_count":14,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-21T11:50:43.742Z","etag":null,"topics":["bayesian-inference","gmrf","linear-algebra","spatial-statistics","spde"],"latest_commit_sha":null,"homepage":"https://timweiland.github.io/GaussianMarkovRandomFields.jl/","language":"Julia","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/timweiland.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2024-07-12T12:03:53.000Z","updated_at":"2025-10-18T20:29:36.000Z","dependencies_parsed_at":"2025-04-01T23:22:47.435Z","dependency_job_id":"16c9f6a3-e375-406f-8456-11eed08b3b94","html_url":"https://github.com/timweiland/GaussianMarkovRandomFields.jl","commit_stats":null,"previous_names":["timweiland/gmrfs.jl","timweiland/gaussianmarkovrandomfields.jl"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/timweiland/GaussianMarkovRandomFields.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timweiland%2FGaussianMarkovRandomFields.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timweiland%2FGaussianMarkovRandomFields.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timweiland%2FGaussianMarkovRandomFields.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timweiland%2FGaussianMarkovRandomFields.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timweiland","download_url":"https://codeload.github.com/timweiland/GaussianMarkovRandomFields.jl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timweiland%2FGaussianMarkovRandomFields.jl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280256222,"owners_count":26299342,"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-21T02:00:06.614Z","response_time":58,"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":["bayesian-inference","gmrf","linear-algebra","spatial-statistics","spde"],"created_at":"2025-10-21T11:50:56.276Z","updated_at":"2025-10-21T11:50:59.733Z","avatar_url":"https://github.com/timweiland.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  GaussianMarkovRandomFields.jl\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cpicture align=\"center\"\u003e\n        \u003cimg alt=\"Logo for the GaussianMarkovRandomFields.jl package.\" src=\"https://github.com/timweiland/GaussianMarkovRandomFields.jl/blob/main/docs/src/assets/logo.svg\" width=\"200px\" height=\"200px\"\u003e\n    \u003c/picture\u003e\n    \u003cbr\u003e\n    \u003cstrong\u003e⚡ Fast, flexible and user-centered Julia package for Bayesian inference with sparse Gaussians\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![](https://img.shields.io/badge/docs-stable-blue.svg)](https://timweiland.github.io/GaussianMarkovRandomFields.jl/stable)\n[![](https://img.shields.io/badge/docs-dev-blue.svg)](https://timweiland.github.io/GaussianMarkovRandomFields.jl/dev)\n\n[![Build Status](https://github.com/timweiland/GaussianMarkovRandomFields.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/timweiland/GaussianMarkovRandomFields.jl/actions/workflows/CI.yml?query=branch%3Amain)\n[![Coverage](https://codecov.io/gh/timweiland/GaussianMarkovRandomFields.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/timweiland/GaussianMarkovRandomFields.jl)\n[![Aqua](https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg)](https://github.com/JuliaTesting/Aqua.jl)\n[![code style: runic](https://img.shields.io/badge/code_style-%E1%9A%B1%E1%9A%A2%E1%9A%BE%E1%9B%81%E1%9A%B2-black)](https://github.com/fredrikekre/Runic.jl)\n\n\u003c/div\u003e\n\nGaussian Markov Random Fields (GMRFs) are Gaussian distributions with sparse\nprecision (inverse covariance) matrices.\nGaussianMarkovRandomFields.jl provides utilities for working with GMRFs in Julia.\nThe goal is to enable **flexible** and **efficient** Bayesian inference from\nGMRFs, powered by sparse linear algebra.\n\nIn particular, we support the creation of GMRFs through finite element method\ndiscretizations of stochastic partial differential equations (SPDEs).\nThis unlocks efficient GMRF-based approximations to commonly used Gaussian\nprocess priors.\nFurthermore, the expressive power of SPDEs allows for flexible, problem-tailored\npriors.\n\n## Contents\n\n- [Installation](#installation)\n- [Your first GMRF](#your-first-gmrf)\n- [Contributing](#contributing)\n\n## Installation\n\nGaussianMarkovRandomFields.jl is not yet a registered Julia package.\nUntil it is, you can install it from this GitHub repository.\nTo do so:\n\n1. [Download Julia (\u003e= version 1.10)](https://julialang.org/downloads/).\n\n2. Launch the Julia REPL and type `] add https://github.com/timweiland/GaussianMarkovRandomFields.jl`. \n\n## Your first GMRF\n\nLet's construct a GMRF approximation to a Matérn process from observation points:\n\n``` julia\nusing GaussianMarkovRandomFields\n\n# Define observation points  \npoints = [0.1 0.0; -0.3 0.55; 0.2 0.8; -0.1 -0.2]  # N×2 matrix\n\n# Create Matérn latent model (automatically generates mesh and discretization)\nmodel = MaternModel(points; smoothness = 1)\nx = model(range = 0.3)  # Construct GMRF with specified range\n```\n\n`x` is a Gaussian distribution, and we can compute all the things Gaussians are\nknown for.\n\n```julia\n# Get interesting quantities\nμ = mean(x)\nσ_marginal = std(x)\nsamp = rand(x)  # Sample\nQ = precision_map(x)  # Sparse precision matrix\n\n# Form posterior under point observations using new helpers\nusing Distributions: Normal\nobs_model = PointEvaluationObsModel(model.discretization, points, Normal)\ny = [0.83, 0.12, 0.45, -0.21]\nobs_likelihood = obs_model(y; σ = 0.1)\nx_cond = gaussian_approximation(x, obs_likelihood)  # Posterior GMRF!\n```\n\nMake sure to check the documentation for further examples!\n\n## Contributing\n\nCheck our [contribution guidelines](./CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimweiland%2Fgaussianmarkovrandomfields.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimweiland%2Fgaussianmarkovrandomfields.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimweiland%2Fgaussianmarkovrandomfields.jl/lists"}