Stan_math_backend.Lower_expr
Lowering of Stan expressions to C++
val constraint_to_string : 'a Middle.Transformation.t -> string option
val hash_fold_variadic :
Ppx_hash_lib.Std.Hash.state ->
variadic ->
Ppx_hash_lib.Std.Hash.state
val hash_variadic : variadic -> Ppx_hash_lib.Std.Hash.hash_value
val functor_type : string Core.Hashtbl.key -> variadic
val functor_suffix_select : variadic -> string
val is_scalar : Middle.Expr.Typed.t -> bool
val is_matrix : Middle.Expr.Typed.t -> bool
Used to determine if operator/
should be mdivide_right() or divide()
val is_row_vector : Middle.Expr.Typed.t -> bool
val transform_args :
Middle__Expr.Typed.Meta.t Middle__Expr.Fixed.t Middle.Transformation.t ->
Middle__Expr.Typed.Meta.t Middle__Expr.Fixed.t Base__List.t
val is_single_index : 'a Middle.Index.t -> bool
val dont_need_range_check : 'a Middle.Expr.Fixed.t Middle.Index.t -> bool
val promote_adtype :
Middle.Expr.Typed.t list ->
Middle.UnsizedType.autodifftype
val suffix_args : 'a Middle.Fun_kind.suffix -> string list
val stantype_prim : Middle.UnsizedType.t -> Cpp.type_
val templates : bool -> bool Middle.Fun_kind.suffix -> Cpp.type_ list
val deserializer : Cpp.expr
val local_scalar :
Middle.UnsizedType.t ->
Middle.UnsizedType.autodifftype ->
Cpp.type_
val minus_one : Stan_math_backend__Cpp.expr -> Cpp.expr
val plus_one : Stan_math_backend__Cpp.expr -> Cpp.expr
val lower_type :
?mem_pattern:Middle.Mem_pattern.t ->
Middle.UnsizedType.t ->
Cpp.type_ ->
Cpp.type_
val lower_unsizedtype_local :
?mem_pattern:Middle.Mem_pattern.t ->
Middle.UnsizedType.autodifftype ->
Middle.UnsizedType.t ->
Cpp.type_
val lower_possibly_var_decl :
Middle.UnsizedType.autodifftype ->
Middle.UnsizedType.t ->
Middle.Mem_pattern.t ->
Cpp.type_
val lower_logical_op :
Cpp.operator ->
Middle.Expr.Typed.t ->
Middle.Expr.Typed.t ->
Cpp.expr
val lower_binary_fun :
string ->
Middle.Expr.Typed.Meta.t Middle.Expr.Fixed.t Base__List.t ->
Cpp.expr
val vector_literal :
?column:bool ->
Cpp.type_ ->
Middle.Expr.Typed.Meta.t Middle.Expr.Fixed.t Base__List.t ->
Cpp.expr
val read_data :
Middle.UnsizedType.t ->
Middle.Expr.Typed.Meta.t Middle.Expr.Fixed.t Base__List.t ->
Cpp.expr
val lower_binary_op :
Cpp.operator ->
string ->
Middle.Expr.Typed.Meta.t Middle.Expr.Fixed.t Base__List.t ->
Cpp.expr
val lower_operator_app :
Middle.Operator.t ->
Middle.Expr.Typed.Meta.t Middle.Expr.Fixed.t Base__List.t ->
Cpp.expr
val lower_misc_special_math_app :
Core.String.Map.Key.t ->
Middle.Mem_pattern.t ->
Middle.UnsizedType.returntype option ->
(Middle.Expr.Typed.Meta.t Middle.Expr.Fixed.t Base__List.t ->
Cpp.expr)
option
val lower_functionals :
string Core.Hashtbl.key Core.Hashtbl.key ->
bool Middle.Fun_kind.suffix ->
Middle.Expr.Typed.Meta.t Middle.Expr.Fixed.t Base__List.t ->
Middle.Mem_pattern.t ->
(Middle.Expr.Typed.Meta.t Middle.Expr.Fixed.t Base__List.t ->
Cpp.expr)
option
val lower_fun_app :
bool Middle.Fun_kind.suffix ->
Core.String.Map.Key.t ->
Middle.Expr.Typed.Meta.t Middle.Expr.Fixed.t Base__List.t ->
Middle.Mem_pattern.t ->
Middle.UnsizedType.returntype option ->
Cpp.expr
val lower_user_defined_fun :
string ->
bool Middle.Fun_kind.suffix ->
Middle.Expr.Typed.Meta.t Middle.Expr.Fixed.t Base__List.t ->
Cpp.expr
val lower_compiler_internal :
Middle.UnsizedType.autodifftype ->
Middle.UnsizedType.t ->
Middle.Expr.Typed.Meta.t Middle.Expr.Fixed.t Middle.Internal_fun.t ->
Middle.Expr.Typed.Meta.t Middle.Expr.Fixed.t Base__List.t ->
Cpp.expr
val lower_index : Middle.Expr.Typed.t Middle.Index.t -> Cpp.expr
val lower_indexed :
Middle.Expr.Typed.t ->
Middle.Expr.Typed.t Middle.Index.t list ->
string ->
Cpp.expr
val lower_indexed_simple :
Cpp.expr ->
Middle.Expr.Typed.t Middle.Index.t Core__.Import.list ->
Cpp.expr
val lower_expr : ?promote_reals:bool -> Middle.Expr.Typed.t -> Cpp.expr
val lower_exprs :
?promote_reals:bool ->
Middle.Expr.Typed.Meta.t Middle.Expr.Fixed.t Base__List.t ->
Cpp.expr Base__List.t
module Testing : sig ... end