# More About Derivatives

:joy: Computing derivatives is by far the most complicated part of using Ceres, and depending on the circumstance the user may need more sophisticated ways of computing derivatives. This section just scratches the surface of how derivatives can be supplied to Ceres. Once you are comfortable with using [`NumericDiffCostFunction`](http://ceres-solver.org/nnls_modeling.html#_CPPv4N5ceres23NumericDiffCostFunctionE) and [`AutoDiffCostFunction`](http://ceres-solver.org/nnls_modeling.html#_CPPv4N5ceres20AutoDiffCostFunctionE) we recommend taking a look at [`DynamicAutoDiffCostFunction`](http://ceres-solver.org/nnls_modeling.html#_CPPv4N5ceres27DynamicAutoDiffCostFunctionE), [`CostFunctionToFunctor`](http://ceres-solver.org/nnls_modeling.html#_CPPv4N5ceres21CostFunctionToFunctorE), `NumericDiffFunctor` and [`ConditionedCostFunction`](http://ceres-solver.org/nnls_modeling.html#_CPPv4N5ceres23ConditionedCostFunctionE) for more advanced ways of constructing and computing cost functions.
