def identity_preconditioner():
    """Create an instance of no-op identity preconditioner.

    Returns
    -------
    preconditioner: Preconditioner
        An instance of identity preconditioner.
    """

    def init_fn(_):
        return IdentityPreconditionerState()

    def update_preconditioner_fn(*args, **kwargs):
        return IdentityPreconditionerState()

    def multiply_by_m_inv_fn(vec, _):
        return vec

    def multiply_by_m_sqrt_fn(vec, _):
        return vec

    def multiply_by_m_sqrt_inv_fn(vec, _):
        return vec

    return Preconditioner(
        init=init_fn,
        update_preconditioner=update_preconditioner_fn,
        multiply_by_m_inv=multiply_by_m_inv_fn,
        multiply_by_m_sqrt=multiply_by_m_sqrt_fn,
        multiply_by_m_sqrt_inv=multiply_by_m_sqrt_inv_fn,
    )
Create an instance of no-op identity preconditioner.

    Returns
    -------
    preconditioner: Preconditioner
        An instance of identity preconditioner.
    
fortuna/prob_model/posterior/sgmcmc/sgmcmc_preconditioner.py