Tutorial for C op

Work in progress.

This is the first version of the tutorial on extending theano with C ops. I'm looking for feedback from people with experience with it to help check for factual errors as well as from people with little experience extending theano to ensure that the concepts are explained clearly enough for new contributors to Theano. Thanks.
The only reason I see is for consistency. As we use EMPTY/ZEROS more
frequently now, I would continue with them. If a good reason to select the
other pop up, I don't have a reason to don't change.

On Fri, Sep 26, 2014 at 11:45 AM, carriepl <notifications@github.com> wrote:

> In doc/tutorial/extending_theano_c.txt:
>
> > +
> > +    Returns true if the array has the specified flags. The variable flag
> > +    should either be a NumPy array flag or an integer obtained by applying
> > +    bitwise or to an ensemble of flags.
> > +
> > +    The flags that can be used in with this macro are :
> > +    NPY_ARRAY_C_CONTIGUOUS, NPY_ARRAY_F_CONTIGUOUS, NPY_ARRAY_OWNDATA,
> > +    NPY_ARRAY_ALIGNED, NPY_ARRAY_WRITEABLE, NPY_ARRAY_UPDATEIFCOPY.
> > +
> > +
> > +Creating NumPy ndarrays
> > +-----------------------
> > +
> > +The following functions allow the creation and copy of NumPy arrays :
> > +
> > +.. method:: PyObject* PyArray_Empty(int nd, npy_intp* dims, PyArray_Descr*
>
> I don't have a personal objection to this. However, could you tell me the
> reason PyArray_EMPTY and ZEROS are preferred to their corresponding
> methods? I always thought it was more or less a personal preference since I
> never found one harder to use than the other.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/Theano/Theano/pull/2121/files#r18096315>.
>