Make.Algodiffinclude Owl_algodiff_core_sig.Sigmodule A : Owl_types_ndarray_algodiff.Sigval shape : t -> int arrayTODO
val is_float : t -> boolTODO
val is_arr : t -> boolTODO
val row_num : t -> intnumber of rows
val col_num : t -> intnumber of columns
val numel : t -> intnumber of elements
val pack_flt : float -> tconvert from ``float`` type to ``t`` type.
val _f : float -> tA shortcut function for ``F A.(float_to_elt x)``.
val unpack_flt : t -> floatconvert from ``t`` type to ``float`` type.
val deep_info : t -> stringTODO
val type_info : t -> stringTODO
val error_uniop : string -> t -> 'aTODO
``diff f x`` returns the exat derivative of a function ``f : scalar -> scalar`` at point ``x``. Simply calling ``diff f`` will return its derivative function ``g`` of the same type, i.e. ``g : scalar -> scalar``.
Keep calling this function will give you higher-order derivatives of ``f``, i.e. ``f |> diff |> diff |> diff |> ...``
jacobian of ``f`` : (vector -> vector) at ``x``, both ``x`` and ``y`` are row vectors.
jacobian vector product of ``f`` : (vector -> vector) at ``x`` along ``v``, forward ad. Namely, it calcultes ``(jacobian x) v``
similar to ``jacobianv'``, but return ``(f x, jacobianv f x v)``
transposed jacobian vector product of ``f : (vector -> vector)`` at ``x`` along ``v``, backward ad. Namely, it calculates ``transpose ((jacobianv f x v))``.
similar to ``jacobianTv``, but return ``(f x, transpose (jacobianv f x v))``
hessian vector product of ``f`` : (scalar -> scalar) at ``x`` along ``v``. Namely, it calculates ``(hessian x) v``.
similar to ``hessianv``, but return ``(f x, hessianv f x v)``.
similar to ``laplacian``, but return ``(f x, laplacian f x)``.
return ``(grad f x, hessian f x)``, ``f : (scalar -> scalar)``
include Owl_algodiff_ops_sig.Sig
with type t := t
and type elt := A.elt
and type arr := A.arr
and type op := opmodule Maths : sig ... endmodule Linalg : sig ... endmodule NN : sig ... endmodule Mat : sig ... endmodule Arr : sig ... endinclude Owl_algodiff_graph_convert_sig.Sig with type t := tval to_trace : t list -> string``to_trace t0; t1; ...`` outputs the trace of computation graph on the terminal in a human-readable format.
val to_dot : t list -> string``to_dot t0; t1; ...`` outputs the trace of computation graph in the dot file format which you can use other tools further visualisation, such as Graphviz.
val pp_num : Format.formatter -> t -> unit``pp_num t`` pretty prints the abstract number used in ``Algodiff``.