Owl_algodiff_core.Makemodule A : Owl_types_ndarray_algodiff.Sigiteratively get primal component of DF or DR type until the component itself is not DF/DR
val shape : t -> int arrayget the shape of primal' value of input
val is_float : t -> boolcheck if input is of float value; if input is of type DF/DR, check its primal' value
val is_arr : t -> boolcheck if input is of ndarray value; if input is of type DF/DR, check its primal' value
val row_num : t -> intget the shape of primal' value of input; and then get the first dimension
val col_num : t -> intget the shape of primal' value of input; and then get the second dimension
val numel : t -> intfor ndarray type input, return its total number of elements.
if primal' value of input is ndarray, copy its value in a new AD type ndarray
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 -> stringval type_info : t -> stringval error_uniop : string -> t -> 'a