diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,11 @@
 ## Unreleased changes
 
 
+## 0.1.0.4
+
+-   Graphical lasso (for now only re-export from `glasso` library).
+
+
 ## 0.1.0.3
 
 -   Fix tests and docs.
diff --git a/covariance.cabal b/covariance.cabal
--- a/covariance.cabal
+++ b/covariance.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               covariance
-version:            0.1.0.3
+version:            0.1.0.4
 synopsis:
     Well-conditioned estimation of large-dimensional covariance matrices
 
@@ -26,13 +26,15 @@
     exposed-modules:
       Statistics.Covariance
     other-modules:
-      Statistics.Covariance.Types
+      Statistics.Covariance.GraphicalLasso
+      Statistics.Covariance.Internal.Tools
       Statistics.Covariance.LedoitWolf
-      Statistics.Covariance.RaoBlackwellLedoitWolf
       Statistics.Covariance.OracleApproximatingShrinkage
-      Statistics.Covariance.Internal.Tools
+      Statistics.Covariance.RaoBlackwellLedoitWolf
+      Statistics.Covariance.Types
     ghc-options: -Wall -Wunused-packages
     build-depends:    base ^>=4.14.3.0
+                    , glasso
                     , hmatrix
                     , statistics
                     , vector
diff --git a/src/Statistics/Covariance.hs b/src/Statistics/Covariance.hs
--- a/src/Statistics/Covariance.hs
+++ b/src/Statistics/Covariance.hs
@@ -21,6 +21,9 @@
     module Statistics.Covariance.RaoBlackwellLedoitWolf,
     module Statistics.Covariance.OracleApproximatingShrinkage,
 
+    -- * Gaussian graphical model based estimators
+    module Statistics.Covariance.GraphicalLasso,
+
     -- * Misc
     DoCenter (..),
 
@@ -33,6 +36,7 @@
 import qualified Data.Vector.Storable as VS
 import qualified Numeric.LinearAlgebra as L
 import qualified Numeric.LinearAlgebra.Devel as L
+import Statistics.Covariance.GraphicalLasso
 import Statistics.Covariance.LedoitWolf
 import Statistics.Covariance.OracleApproximatingShrinkage
 import Statistics.Covariance.RaoBlackwellLedoitWolf
@@ -72,8 +76,8 @@
 -- 1.0. The estimated covariance matrix of a scaled data matrix is a correlation
 -- matrix, which is easier to estimate.
 scale ::
-  -- | Data matrix of dimension NxP, where N is the number of observations, and
-  -- P is the number of parameters.
+  -- | Sample data matrix of dimension \(n \times p\), where \(n\) is the number
+  -- of samples (rows), and \(p\) is the number of parameters (columns).
   L.Matrix Double ->
   -- | (Means, Standard deviations, Centered and scaled matrix)
   (L.Vector Double, L.Vector Double, L.Matrix Double)
@@ -86,10 +90,10 @@
 -- | Convert a correlation matrix with given standard deviations to original
 -- scale.
 rescaleWith ::
-  -- | Vector of standard deviations (length P)
+  -- | Vector of standard deviations of length \(p\).
   L.Vector Double ->
-  -- | Correlation matrix.
+  -- | Correlation matrix of dimension \(p \times p\).
   L.Matrix Double ->
-  -- | Covariance matrix.
+  -- | Covariance matrix of dimension \(p \times p\).
   L.Matrix Double
 rescaleWith ss = L.mapMatrixWithIndex (\(i, j) x -> x * (ss VS.! i) * (ss VS.! j))
diff --git a/src/Statistics/Covariance/GraphicalLasso.hs b/src/Statistics/Covariance/GraphicalLasso.hs
new file mode 100644
--- /dev/null
+++ b/src/Statistics/Covariance/GraphicalLasso.hs
@@ -0,0 +1,62 @@
+-- |
+-- Module      :  Statistics.Covariance.GraphicalLasso
+-- Description :  Graphical lasso
+-- Copyright   :  (c) 2021 Dominik Schrempf
+-- License     :  GPL-3.0-or-later
+--
+-- Maintainer  :  dominik.schrempf@gmail.com
+-- Stability   :  experimental
+-- Portability :  portable
+--
+-- Creation date: Wed Sep 15 09:23:19 2021.
+module Statistics.Covariance.GraphicalLasso
+  ( graphicalLasso,
+  )
+where
+
+import Algorithms.GLasso
+import Data.Bifunctor
+import qualified Numeric.LinearAlgebra as L
+
+-- | Gaussian graphical model based estimator.
+--
+-- This function estimates both, the covariance and the precision matrices. It
+-- is best suited for sparse covariance matrices.
+--
+-- For now, this is just a wrapper around 'glasso'.
+--
+-- See Friedman, J., Hastie, T., & Tibshirani, R., Sparse inverse covariance
+-- estimation with the graphical lasso, Biostatistics, 9(3), 432–441 (2007).
+-- http://dx.doi.org/10.1093/biostatistics/kxm045.
+--
+-- Return 'Left' if
+--
+-- - the regularization parameter is out of bounds \([0, \infty)\).
+--
+-- - only one sample is available.
+--
+-- - no parameters are available.
+--
+-- NOTE: This function may call 'error' due to partial library functions.
+graphicalLasso ::
+  -- | Regularization or lasso parameter; penalty for non-zero covariances. The
+  -- higher the lasso parameter, the sparser the estimated inverse covariance
+  -- matrix. Must be non-negative.
+  Double ->
+  -- | Sample data matrix of dimension \(n \times p\), where \(n\) is the number
+  -- of samples (rows), and \(p\) is the number of parameters (columns).
+  L.Matrix Double ->
+  -- | @Either ErrorString (Covariance matrix, Precision matrix)@.
+  Either String (L.Herm Double, L.Herm Double)
+graphicalLasso l xs
+  | l < 0 = Left "graphicalLasso: Regularization parameter is negative."
+  | n < 2 = Left "graphicalLasso: Need more than one sample."
+  | p < 1 = Left "graphicalLasso: Need at least one parameter."
+  | otherwise =
+    Right $
+      bimap convert convert $ glasso p (L.flatten $ L.unSym sigma) l
+  where
+    n = L.rows xs
+    p = L.cols xs
+    (_, sigma) = L.meanCov xs
+    convert = L.trustSym . L.reshape p
diff --git a/test/Test.hs b/test/Test.hs
--- a/test/Test.hs
+++ b/test/Test.hs
@@ -46,7 +46,8 @@
 estimators =
   [ (ledoitWolf DoCenter, "ledoitWolf"),
     (raoBlackwellLedoitWolf, "raoBlackwellLedoitWolf"),
-    (oracleApproximatingShrinkage, "oracleApproximatingShrinkage")
+    (oracleApproximatingShrinkage, "oracleApproximatingShrinkage"),
+    (fmap fst . graphicalLasso 1.0, "graphicalLasso")
   ]
 
 unitTests :: TestTree
