.. UOpt Python documentation master file, created by
   sphinx-quickstart on Thu Jul 20 13:12:28 2023.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.

Welcome to CADJN Python's documentation!
========================================

CADJN Python is the Python module to interface the CADJN neural
network routines. Networks are created from a definition, and then the
weights can get be set and retrieved and the network response be
evaluated given a row matrix of data inputs. Arrays are passed using
:py:mod:`numpy` ndarrays.

For learning, some objetive functions can be evaluated given some
specifications, i.e. the desired response. Either a scalar objective
funciton, like the sum of log probabilities can be compputed for the
entire dataset, or the log probabilities can be returned in a vector,
one for each pair of input data and specs.

Of the scalar objective function, the gradient and Hessian-vector
products can be evaluated. Of the vector response function, the first
order derivatives Jacobian-vector product and vector-Jacobian product
can be evaluated.

The time overhead of the gradient vs. the objective function is a
factor of less than three, as is the case for the two Jacobian
products. The evaluation of a Hessian-vector product takes about nine
times as long as the scalar objective function.

.. toctree::
   :maxdepth: 2
   :caption: Contents:

   installation
   reference

   
Indices and tables
==================

* :ref:`genindex`
* :ref:`search`
