Middle.UnsizedTypeTypes which have dimensionalities but not sizes, e.g. array[,,]
and argumentlist = (autodifftype * t) listand signature =
argumentlist * returntype * bool Fun_kind.suffix * Mem_pattern.tval compare_autodifftype : autodifftype -> autodifftype -> intval compare_argumentlist : argumentlist -> argumentlist -> intval compare_returntype : returntype -> returntype -> intval sexp_of_t : t -> Sexplib0__.Sexp.tval sexp_of_autodifftype : autodifftype -> Sexplib0__.Sexp.tval sexp_of_argumentlist : argumentlist -> Sexplib0.Sexp.tval sexp_of_returntype : returntype -> Sexplib0.Sexp.tval sexp_of_signature : signature -> Sexplib0.Sexp.tval equal_autodifftype : autodifftype -> autodifftype -> boolval equal_argumentlist : argumentlist -> argumentlist -> boolval equal_returntype : returntype -> returntype -> booltype variadic_signature = {return_type : t;control_args : argumentlist;required_fn_rt : t;required_fn_args : argumentlist;}val pp_tuple_autodifftype : autodifftype Fmt.tval returntype_to_type_opt : returntype -> t optionval pp_autodifftype : Stdlib.Format.formatter -> autodifftype -> unitval count_dims : t -> intval contains_tuple : t -> boolval is_fun_type : t -> boolval pp : t Fmt.tval pp_fun_arg : (autodifftype * t) Fmt.tval pp_returntype : Stdlib.Format.formatter -> returntype -> unitval pp_math_sig : Stdlib.Format.formatter -> signature -> unitval autodifftype_can_convert : autodifftype -> autodifftype -> boolval has_autodiff : autodifftype -> boolval any_autodiff : autodifftype list -> boolval lub_ad_type : autodifftype list -> autodifftype optionval common_type : (t * t) -> t Std.Option.tGiven two types find the minimal type both can convert to
val is_autodiffable : t -> boolval is_autodifftype : autodifftype -> boolval is_dataonlytype : autodifftype -> boolval is_scalar_type : t -> boolval is_discrete_type : t -> boolUsed to determine valid covariates for _lpmf functions
val is_int_type : t -> boolUsed in code generation and other places, does _not_ include tuples of ints
val is_complex_type : t -> boolval is_eigen_type : t -> boolval contains_int : t -> boolDetect if type contains an integer
val contains_eigen_type : t -> boolval is_container : t -> boolval is_array : t -> boolval is_indexing_matrix : (t * 'a list) -> boolval fill_adtype_for_type : autodifftype -> t -> autodifftypeIn some places (e.g. code generation) we need to instantiate an AD type. Previously we would just say DataOnly or AutoDiffable, however this breaks the invariant that a Tuple always has TupleAD as it's autodifftype
val enumerate_tuple_names_io : string -> t -> string Std.List.tList all possible tuple sub-names for IO purposes. E.g, the decl array[2] (int, real) foo; should yield the list ["foo.1";"foo.2"].