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

The documentation of the core components of Theano 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:`theano_type` -- tutorial for writing a new type in Theano. It introduces the
  basics concerning Theano datatypes

* :ref:`theano_ctype` -- tutorial on how to make your type C friendly. 

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

* :ref:`optimization` -- tutorial on how optimization work in Theano 

* :ref:`pipeline` -- describes the steps of compiling a Theano Function

* :ref:`graphstructure` -- describes the symbolic graphs generated by scan

* :ref:`unittest` -- tutorial on how to use unittest in testing Theano

* :ref:`sandbox_broadcasting` -- short description of what a broadcastable
  pattern is

* :ref:`sandbox_debugging_step_mode` -- how to step through the execution of
  a thenao function and print the inputs and outputs of each op

* :ref:`sandbox_elemwise` -- description of element wise operations

* :ref:`sandbox_maxgotcha` -- describes the difference between numpy.max and
   python max (something to consider when using max)

* :ref:`sandbox_randnb` -- description of how Theano deals with random
  numbers

* :ref:`sparse` -- description of how the sparse type in Theano

