:orphan:

Core Development Guide
=======================

The documentation of the core components of PyTensor is still a work in
progress. For now this is a list of bits and pieces on the subject,
some of them might be outdated though:


* :ref:`pytensor_type` -- Tutorial for writing a new type in PyTensor. It
  introduces the basics concerning PyTensor datatypes.

* :ref:`pytensor_ctype` -- Tutorial on how to make your type C-friendly.

* :ref:`views_and_inplace` -- This is somewhere between extending PyTensor and
  describing how PyTensor works internally; it talks about views and inplace
  operations.

* :ref:`graph_rewriting` -- Tutorial on how graph rewriting works in PyTensor.

* :ref:`pipeline` -- Describes the steps of compiling an PyTensor Function.

* :ref:`graphstructures` -- Describes the symbolic graphs generated by
  :mod:`pytensor.scan`.

* :ref:`unittest` -- Tutorial on how to use unittest in testing PyTensor.

* :ref:`sandbox_debugging_step_mode` -- How to step through the execution of
  an PyTensor function and print the inputs and outputs of each op.

* :ref:`sandbox_elemwise` -- Description of element wise operations.

* :ref:`sandbox_randnb` -- Description of how PyTensor deals with random
  numbers.

* :ref:`sparse` -- Description of the ``sparse`` type in PyTensor.
