.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "gallery/0100_lop/matrix_operator.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_gallery_0100_lop_matrix_operator.py: .. _gallery:lop:matrix_op: A matrix backed linear operator ================================== This example demonstrates how to construct a linear operator from an ordinary matrix. .. GENERATED FROM PYTHON SOURCE LINES 11-12 Let's import necessary libraries .. GENERATED FROM PYTHON SOURCE LINES 12-15 .. code-block:: default import jax.numpy as jnp from cr.sparse import lop .. GENERATED FROM PYTHON SOURCE LINES 16-19 Setup ------ Create a small matrix .. GENERATED FROM PYTHON SOURCE LINES 19-23 .. code-block:: default n = 4 A = jnp.ones((n, n)) print(A) .. rst-class:: sphx-glr-script-out .. code-block:: none [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]] .. GENERATED FROM PYTHON SOURCE LINES 24-25 Create a vector .. GENERATED FROM PYTHON SOURCE LINES 25-28 .. code-block:: default x = jnp.ones(n) print(x) .. rst-class:: sphx-glr-script-out .. code-block:: none [1. 1. 1. 1.] .. GENERATED FROM PYTHON SOURCE LINES 29-32 Operator construction ---------------------- Convert A into an operator .. GENERATED FROM PYTHON SOURCE LINES 32-34 .. code-block:: default T = lop.matrix(A) .. GENERATED FROM PYTHON SOURCE LINES 35-37 Operator usage ---------------------- .. GENERATED FROM PYTHON SOURCE LINES 39-40 Compute A x .. GENERATED FROM PYTHON SOURCE LINES 40-42 .. code-block:: default print(T.times(x)) .. rst-class:: sphx-glr-script-out .. code-block:: none [4. 4. 4. 4.] .. GENERATED FROM PYTHON SOURCE LINES 43-44 Compute A^H x .. GENERATED FROM PYTHON SOURCE LINES 44-47 .. code-block:: default print(T.trans(x)) .. rst-class:: sphx-glr-script-out .. code-block:: none [4. 4. 4. 4.] .. GENERATED FROM PYTHON SOURCE LINES 48-51 JIT Compilation ----------------- Wrap the ``times`` and ``trans`` functions with jit .. GENERATED FROM PYTHON SOURCE LINES 51-53 .. code-block:: default T = lop.jit(T) .. GENERATED FROM PYTHON SOURCE LINES 54-55 Compute A x .. GENERATED FROM PYTHON SOURCE LINES 55-57 .. code-block:: default print(T.times(x)) .. rst-class:: sphx-glr-script-out .. code-block:: none [4. 4. 4. 4.] .. GENERATED FROM PYTHON SOURCE LINES 58-59 Compute A^H x .. GENERATED FROM PYTHON SOURCE LINES 59-62 .. code-block:: default print(T.trans(x)) .. rst-class:: sphx-glr-script-out .. code-block:: none [4. 4. 4. 4.] .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.080 seconds) .. _sphx_glr_download_gallery_0100_lop_matrix_operator.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: matrix_operator.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: matrix_operator.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_