Module Nx_effect

type context = Nx_backend.context
type ('a, 'b) t =
  1. | T : ('a, 'b) Nx_backend.t -> ('a, 'b) t
  2. | Deferred : ('a, 'b) deferred -> ('a, 'b) t
and ('a, 'b) deferred = {
  1. d_id : int;
  2. d_context : Nx_backend.context;
  3. d_dtype : ('a, 'b) Nx_core.Dtype.t;
  4. d_view : Nx_core.View.t;
  5. d_fill : unit -> ('a, 'b) Nx_buffer.t;
  6. mutable d_forced : ('a, 'b) Nx_backend.t option;
}
type ('a, 'b) host_buffer =
  1. | Host_buffer : ('a, 'b) Nx_buffer.t -> ('a, 'b) host_buffer
type Stdlib.Effect.t +=
  1. | E_view : ('a, 'b) t -> Nx_core.View.t Stdlib.Effect.t
  2. | E_buffer : {
    1. context : context;
    2. dtype : ('a0, 'b0) Nx_core.Dtype.t;
    3. size_in_elements : int;
    } -> ('a0, 'b0) t Stdlib.Effect.t
  3. | E_const_scalar : {
    1. context : context;
    2. value : 'a1;
    3. dtype : ('a1, 'b1) Nx_core.Dtype.t;
    } -> ('a1, 'b1) t Stdlib.Effect.t
  4. | E_from_host : {
    1. context : context;
    2. array : ('a2, 'b2) Nx_buffer.t;
    } -> ('a2, 'b2) t Stdlib.Effect.t
  5. | E_add : {
    1. a : ('a3, 'b3) t;
    2. b : ('a3, 'b3) t;
    } -> ('a3, 'b3) t Stdlib.Effect.t
  6. | E_sub : {
    1. a : ('a4, 'b4) t;
    2. b : ('a4, 'b4) t;
    } -> ('a4, 'b4) t Stdlib.Effect.t
  7. | E_mul : {
    1. a : ('a5, 'b5) t;
    2. b : ('a5, 'b5) t;
    } -> ('a5, 'b5) t Stdlib.Effect.t
  8. | E_idiv : {
    1. a : ('a6, 'b6) t;
    2. b : ('a6, 'b6) t;
    } -> ('a6, 'b6) t Stdlib.Effect.t
  9. | E_fdiv : {
    1. a : ('a7, 'b7) t;
    2. b : ('a7, 'b7) t;
    } -> ('a7, 'b7) t Stdlib.Effect.t
  10. | E_max : {
    1. a : ('a8, 'b8) t;
    2. b : ('a8, 'b8) t;
    } -> ('a8, 'b8) t Stdlib.Effect.t
  11. | E_min : {
    1. a : ('a9, 'b9) t;
    2. b : ('a9, 'b9) t;
    } -> ('a9, 'b9) t Stdlib.Effect.t
  12. | E_mod : {
    1. a : ('a10, 'b10) t;
    2. b : ('a10, 'b10) t;
    } -> ('a10, 'b10) t Stdlib.Effect.t
  13. | E_pow : {
    1. a : ('a11, 'b11) t;
    2. b : ('a11, 'b11) t;
    } -> ('a11, 'b11) t Stdlib.Effect.t
  14. | E_xor : {
    1. a : ('a12, 'b12) t;
    2. b : ('a12, 'b12) t;
    } -> ('a12, 'b12) t Stdlib.Effect.t
  15. | E_or : {
    1. a : ('a13, 'b13) t;
    2. b : ('a13, 'b13) t;
    } -> ('a13, 'b13) t Stdlib.Effect.t
  16. | E_and : {
    1. a : ('a14, 'b14) t;
    2. b : ('a14, 'b14) t;
    } -> ('a14, 'b14) t Stdlib.Effect.t
  17. | E_atan2 : {
    1. a : ('a15, 'b15) t;
    2. b : ('a15, 'b15) t;
    } -> ('a15, 'b15) t Stdlib.Effect.t
  18. | E_cmpeq : {
    1. a : ('a16, 'b16) t;
    2. b : ('a16, 'b16) t;
    } -> (bool, Nx_core.Dtype.bool_elt) t Stdlib.Effect.t
  19. | E_cmpne : {
    1. a : ('a17, 'b17) t;
    2. b : ('a17, 'b17) t;
    } -> (bool, Nx_core.Dtype.bool_elt) t Stdlib.Effect.t
  20. | E_cmplt : {
    1. a : ('a18, 'b18) t;
    2. b : ('a18, 'b18) t;
    } -> (bool, Nx_core.Dtype.bool_elt) t Stdlib.Effect.t
  21. | E_cmple : {
    1. a : ('a19, 'b19) t;
    2. b : ('a19, 'b19) t;
    } -> (bool, Nx_core.Dtype.bool_elt) t Stdlib.Effect.t
  22. | E_neg : {
    1. t_in : ('a20, 'b20) t;
    } -> ('a20, 'b20) t Stdlib.Effect.t
  23. | E_sin : {
    1. t_in : ('a21, 'b21) t;
    } -> ('a21, 'b21) t Stdlib.Effect.t
  24. | E_sqrt : {
    1. t_in : ('a22, 'b22) t;
    } -> ('a22, 'b22) t Stdlib.Effect.t
  25. | E_recip : {
    1. t_in : ('a23, 'b23) t;
    } -> ('a23, 'b23) t Stdlib.Effect.t
  26. | E_log : {
    1. t_in : ('a24, 'b24) t;
    } -> ('a24, 'b24) t Stdlib.Effect.t
  27. | E_exp : {
    1. t_in : ('a25, 'b25) t;
    } -> ('a25, 'b25) t Stdlib.Effect.t
  28. | E_cos : {
    1. t_in : ('a26, 'b26) t;
    } -> ('a26, 'b26) t Stdlib.Effect.t
  29. | E_abs : {
    1. t_in : ('a27, 'b27) t;
    } -> ('a27, 'b27) t Stdlib.Effect.t
  30. | E_sign : {
    1. t_in : ('a28, 'b28) t;
    } -> ('a28, 'b28) t Stdlib.Effect.t
  31. | E_tan : {
    1. t_in : ('a29, 'b29) t;
    } -> ('a29, 'b29) t Stdlib.Effect.t
  32. | E_asin : {
    1. t_in : ('a30, 'b30) t;
    } -> ('a30, 'b30) t Stdlib.Effect.t
  33. | E_acos : {
    1. t_in : ('a31, 'b31) t;
    } -> ('a31, 'b31) t Stdlib.Effect.t
  34. | E_atan : {
    1. t_in : ('a32, 'b32) t;
    } -> ('a32, 'b32) t Stdlib.Effect.t
  35. | E_sinh : {
    1. t_in : ('a33, 'b33) t;
    } -> ('a33, 'b33) t Stdlib.Effect.t
  36. | E_cosh : {
    1. t_in : ('a34, 'b34) t;
    } -> ('a34, 'b34) t Stdlib.Effect.t
  37. | E_tanh : {
    1. t_in : ('a35, 'b35) t;
    } -> ('a35, 'b35) t Stdlib.Effect.t
  38. | E_trunc : {
    1. t_in : ('a36, 'b36) t;
    } -> ('a36, 'b36) t Stdlib.Effect.t
  39. | E_ceil : {
    1. t_in : ('a37, 'b37) t;
    } -> ('a37, 'b37) t Stdlib.Effect.t
  40. | E_floor : {
    1. t_in : ('a38, 'b38) t;
    } -> ('a38, 'b38) t Stdlib.Effect.t
  41. | E_round : {
    1. t_in : ('a39, 'b39) t;
    } -> ('a39, 'b39) t Stdlib.Effect.t
  42. | E_erf : {
    1. t_in : ('a40, 'b40) t;
    } -> ('a40, 'b40) t Stdlib.Effect.t
  43. | E_where : {
    1. condition : (bool, Nx_core.Dtype.bool_elt) t;
    2. if_true : ('a41, 'b41) t;
    3. if_false : ('a41, 'b41) t;
    } -> ('a41, 'b41) t Stdlib.Effect.t
  44. | E_reduce_sum : {
    1. t_in : ('a42, 'b42) t;
    2. axes : int array;
    3. keepdims : bool;
    } -> ('a42, 'b42) t Stdlib.Effect.t
  45. | E_reduce_max : {
    1. t_in : ('a43, 'b43) t;
    2. axes : int array;
    3. keepdims : bool;
    } -> ('a43, 'b43) t Stdlib.Effect.t
  46. | E_reduce_min : {
    1. t_in : ('a44, 'b44) t;
    2. axes : int array;
    3. keepdims : bool;
    } -> ('a44, 'b44) t Stdlib.Effect.t
  47. | E_reduce_prod : {
    1. t_in : ('a45, 'b45) t;
    2. axes : int array;
    3. keepdims : bool;
    } -> ('a45, 'b45) t Stdlib.Effect.t
  48. | E_argmax : {
    1. t_in : ('a46, 'b46) t;
    2. axis : int;
    3. keepdims : bool;
    } -> (int32, Nx_core.Dtype.int32_elt) t Stdlib.Effect.t
  49. | E_argmin : {
    1. t_in : ('a47, 'b47) t;
    2. axis : int;
    3. keepdims : bool;
    } -> (int32, Nx_core.Dtype.int32_elt) t Stdlib.Effect.t
  50. | E_sort : {
    1. t_in : ('a48, 'b48) t;
    2. axis : int;
    3. descending : bool;
    } -> ('a48, 'b48) t Stdlib.Effect.t
  51. | E_argsort : {
    1. t_in : ('a49, 'b49) t;
    2. axis : int;
    3. descending : bool;
    } -> (int32, Nx_core.Dtype.int32_elt) t Stdlib.Effect.t
  52. | E_associative_scan : {
    1. t_in : ('a50, 'b50) t;
    2. axis : int;
    3. op : [ `Max | `Min | `Prod | `Sum ];
    } -> ('a50, 'b50) t Stdlib.Effect.t
  53. | E_permute : {
    1. t_in : ('a51, 'b51) t;
    2. axes : int array;
    } -> ('a51, 'b51) t Stdlib.Effect.t
  54. | E_reshape : {
    1. t_in : ('a52, 'b52) t;
    2. new_shape : int array;
    } -> ('a52, 'b52) t Stdlib.Effect.t
  55. | E_expand : {
    1. t_in : ('a53, 'b53) t;
    2. new_target_shape : int array;
    } -> ('a53, 'b53) t Stdlib.Effect.t
  56. | E_pad : {
    1. t_in : ('a54, 'b54) t;
    2. padding_config : (int * int) array;
    3. fill_value : 'a54;
    } -> ('a54, 'b54) t Stdlib.Effect.t
  57. | E_shrink : {
    1. t_in : ('a55, 'b55) t;
    2. limits : (int * int) array;
    } -> ('a55, 'b55) t Stdlib.Effect.t
  58. | E_flip : {
    1. t_in : ('a56, 'b56) t;
    2. dims_to_flip : bool array;
    } -> ('a56, 'b56) t Stdlib.Effect.t
  59. | E_cat : {
    1. t_list : ('a57, 'b57) t list;
    2. axis : int;
    } -> ('a57, 'b57) t Stdlib.Effect.t
  60. | E_cast : {
    1. t_in : ('a58, 'b58) t;
    2. target_dtype : ('c, 'd) Nx_core.Dtype.t;
    } -> ('c, 'd) t Stdlib.Effect.t
  61. | E_contiguous : {
    1. t_in : ('a59, 'b59) t;
    } -> ('a59, 'b59) t Stdlib.Effect.t
  62. | E_copy : {
    1. t_in : ('a60, 'b60) t;
    } -> ('a60, 'b60) t Stdlib.Effect.t
  63. | E_assign : {
    1. dst : ('a61, 'b61) t;
    2. src : ('a61, 'b61) t;
    } -> unit Stdlib.Effect.t
  64. | E_threefry : {
    1. key : (int32, Nx_core.Dtype.int32_elt) t;
    2. ctr : (int32, Nx_core.Dtype.int32_elt) t;
    } -> (int32, Nx_core.Dtype.int32_elt) t Stdlib.Effect.t
  65. | E_gather : {
    1. data : ('a62, 'b62) t;
    2. indices : (int32, Nx_core.Dtype.int32_elt) t;
    3. axis : int;
    } -> ('a62, 'b62) t Stdlib.Effect.t
  66. | E_scatter : {
    1. data_template : ('a63, 'b63) t;
    2. indices : (int32, Nx_core.Dtype.int32_elt) t;
    3. updates : ('a63, 'b63) t;
    4. axis : int;
    5. mode : [ `Add | `Set ];
    6. unique_indices : bool;
    } -> ('a63, 'b63) t Stdlib.Effect.t
  67. | E_to_device : {
    1. context : context;
    2. t_in : ('a64, 'b64) t;
    } -> ('a64, 'b64) t Stdlib.Effect.t
  68. | E_unfold : {
    1. t_in : ('a65, 'b65) t;
    2. kernel_size : int array;
    3. stride : int array;
    4. dilation : int array;
    5. padding : (int * int) array;
    } -> ('a65, 'b65) t Stdlib.Effect.t
  69. | E_fold : {
    1. t_in : ('a66, 'b66) t;
    2. output_size : int array;
    3. kernel_size : int array;
    4. stride : int array;
    5. dilation : int array;
    6. padding : (int * int) array;
    } -> ('a66, 'b66) t Stdlib.Effect.t
  70. | E_matmul : {
    1. a : ('a67, 'b67) t;
    2. b : ('a67, 'b67) t;
    } -> ('a67, 'b67) t Stdlib.Effect.t
  71. | E_fft : {
    1. t : (Stdlib.Complex.t, 'b68) t;
    2. axes : int array;
    } -> (Stdlib.Complex.t, 'b68) t Stdlib.Effect.t
  72. | E_ifft : {
    1. t : (Stdlib.Complex.t, 'b69) t;
    2. axes : int array;
    } -> (Stdlib.Complex.t, 'b69) t Stdlib.Effect.t
  73. | E_rfft : {
    1. t : (float, 'b70) t;
    2. dtype : (Stdlib.Complex.t, 'c0) Nx_core.Dtype.t;
    3. axes : int array;
    } -> (Stdlib.Complex.t, 'c0) t Stdlib.Effect.t
  74. | E_irfft : {
    1. t : (Stdlib.Complex.t, 'b71) t;
    2. dtype : (float, 'c1) Nx_core.Dtype.t;
    3. axes : int array;
    4. s : int array option;
    } -> (float, 'c1) t Stdlib.Effect.t
  75. | E_psum : {
    1. t_in : ('a68, 'b72) t;
    } -> ('a68, 'b72) t Stdlib.Effect.t
  76. | E_cholesky : {
    1. t_in : ('a69, 'b73) t;
    2. upper : bool;
    } -> ('a69, 'b73) t Stdlib.Effect.t
  77. | E_qr : {
    1. t_in : ('a70, 'b74) t;
    2. reduced : bool;
    } -> (('a70, 'b74) t * ('a70, 'b74) t) Stdlib.Effect.t
  78. | E_svd : {
    1. t_in : ('a71, 'b75) t;
    2. full_matrices : bool;
    } -> (('a71, 'b75) t * (float, Nx_core.Dtype.float64_elt) t * ('a71, 'b75) t) Stdlib.Effect.t
  79. | E_eig : {
    1. t_in : ('a72, 'b76) t;
    2. vectors : bool;
    } -> ((Stdlib.Complex.t, Nx_core.Dtype.complex64_elt) t * (Stdlib.Complex.t, Nx_core.Dtype.complex64_elt) t option) Stdlib.Effect.t
  80. | E_eigh : {
    1. t_in : ('a73, 'b77) t;
    2. vectors : bool;
    } -> ((float, Nx_core.Dtype.float64_elt) t * ('a73, 'b77) t option) Stdlib.Effect.t
  81. | E_triangular_solve : {
    1. a : ('a74, 'b78) t;
    2. b : ('a74, 'b78) t;
    3. upper : bool;
    4. transpose : bool;
    5. unit_diag : bool;
    } -> ('a74, 'b78) t Stdlib.Effect.t
  82. | E_to_host : ('a75, 'b79) t -> ('a75, 'b79) host_buffer Stdlib.Effect.t
val force : ('a, 'b) deferred -> ('a, 'b) Nx_backend.t
val unwrap : 'a 'b. ('a, 'b) t -> ('a, 'b) Nx_backend.t
val deferred_id_counter : int Stdlib.ref
val deferred : context -> ('a, 'b) Nx_core.Dtype.t -> int array -> (unit -> ('a, 'b) Nx_buffer.t) -> ('a, 'b) t
val deferred_id : 'a 'b. ('a, 'b) t -> int option
val create_context : unit -> context
val context : 'a 'b. ('a, 'b) t -> context
val to_device : context -> ('a, 'b) t -> ('a, 'b) t
val view : ('a, 'b) t -> Nx_core.View.t
val dtype : 'a 'b. ('a, 'b) t -> ('a, 'b) Nx_core.Dtype.t
val to_host : ('a, 'b) t -> ('a, 'b) Nx_buffer.t
val binary_op : (unit -> ('a, 'b) t Stdlib.Effect.t) -> (('c, 'd) Nx_backend.t -> ('e, 'f) Nx_backend.t -> ('a, 'b) Nx_backend.t) -> ('c, 'd) t -> ('e, 'f) t -> ('a, 'b) t
val unary_op : (unit -> ('a, 'b) t Stdlib.Effect.t) -> (('c, 'd) Nx_backend.t -> ('a, 'b) Nx_backend.t) -> ('c, 'd) t -> ('a, 'b) t
val reduce_op : (unit -> ('a, 'b) t Stdlib.Effect.t) -> (axes:'c -> keepdims:'d -> ('e, 'f) Nx_backend.t -> ('a, 'b) Nx_backend.t) -> axes:'c -> keepdims:'d -> ('e, 'f) t -> ('a, 'b) t
val movement_op : (unit -> ('a, 'b) t Stdlib.Effect.t) -> (('c, 'd) Nx_backend.t -> 'e -> ('a, 'b) Nx_backend.t) -> ('c, 'd) t -> 'e -> ('a, 'b) t
val assign : ('a, 'b) t -> ('a, 'b) t -> unit
val add : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t
val sub : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t
val mul : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t
val max : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t
val min : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t
val mod_ : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t
val pow : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t
val xor : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t
val or_ : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t
val and_ : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t
val atan2 : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t
val div : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t
val cmpeq : ('a, 'b) t -> ('a, 'b) t -> (bool, Nx_core.Dtype.bool_elt) t
val cmpne : ('a, 'b) t -> ('a, 'b) t -> (bool, Nx_core.Dtype.bool_elt) t
val cmplt : ('a, 'b) t -> ('a, 'b) t -> (bool, Nx_core.Dtype.bool_elt) t
val cmple : ('a, 'b) t -> ('a, 'b) t -> (bool, Nx_core.Dtype.bool_elt) t
val neg : ('a, 'b) t -> ('a, 'b) t
val sin : ('a, 'b) t -> ('a, 'b) t
val sqrt : ('a, 'b) t -> ('a, 'b) t
val recip : ('a, 'b) t -> ('a, 'b) t
val log : ('a, 'b) t -> ('a, 'b) t
val exp : ('a, 'b) t -> ('a, 'b) t
val cos : ('a, 'b) t -> ('a, 'b) t
val abs : ('a, 'b) t -> ('a, 'b) t
val sign : ('a, 'b) t -> ('a, 'b) t
val tan : ('a, 'b) t -> ('a, 'b) t
val asin : ('a, 'b) t -> ('a, 'b) t
val acos : ('a, 'b) t -> ('a, 'b) t
val atan : ('a, 'b) t -> ('a, 'b) t
val sinh : ('a, 'b) t -> ('a, 'b) t
val cosh : ('a, 'b) t -> ('a, 'b) t
val tanh : ('a, 'b) t -> ('a, 'b) t
val trunc : ('a, 'b) t -> ('a, 'b) t
val ceil : ('a, 'b) t -> ('a, 'b) t
val floor : ('a, 'b) t -> ('a, 'b) t
val round : ('a, 'b) t -> ('a, 'b) t
val erf : ('a, 'b) t -> ('a, 'b) t
val op_psum : ('a, 'b) t -> ('a, 'b) t
val reduce_sum : axes:int array -> keepdims:bool -> ('a, 'b) t -> ('a, 'b) t
val reduce_max : axes:int array -> keepdims:bool -> ('a, 'b) t -> ('a, 'b) t
val reduce_min : axes:int array -> keepdims:bool -> ('a, 'b) t -> ('a, 'b) t
val reduce_prod : axes:int array -> keepdims:bool -> ('a, 'b) t -> ('a, 'b) t
val argmax : axis:int -> keepdims:bool -> ('a, 'b) t -> (int32, Nx_core.Dtype.int32_elt) t
val argmin : axis:int -> keepdims:bool -> ('a, 'b) t -> (int32, Nx_core.Dtype.int32_elt) t
val associative_scan : axis:int -> op:[ `Max | `Min | `Prod | `Sum ] -> ('a, 'b) t -> ('a, 'b) t
val sort : axis:int -> descending:bool -> ('a, 'b) t -> ('a, 'b) t
val argsort : axis:int -> descending:bool -> ('a, 'b) t -> (int32, Nx_core.Dtype.int32_elt) t
val reshape : ('a, 'b) t -> int array -> ('a, 'b) t
val expand : ('a, 'b) t -> int array -> ('a, 'b) t
val permute : ('a, 'b) t -> int array -> ('a, 'b) t
val shrink : ('a, 'b) t -> (int * int) array -> ('a, 'b) t
val flip : ('a, 'b) t -> bool array -> ('a, 'b) t
val pad : ('a, 'b) t -> (int * int) array -> 'a -> ('a, 'b) t
val buffer : context -> ('a, 'b) Nx_core.Dtype.t -> int array -> ('a, 'b) t
val const_scalar : context -> 'a -> ('a, 'b) Nx_core.Dtype.t -> ('a, 'b) t
val full : context -> ('a, 'b) Nx_core.Dtype.t -> int array -> 'a -> ('a, 'b) t
val from_host : context -> ('a, 'b) Nx_buffer.t -> ('a, 'b) t
val contiguous : ('a, 'b) t -> ('a, 'b) t
val copy : ('a, 'b) t -> ('a, 'b) t
val where : (bool, Nx_core.Dtype.bool_elt) t -> ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t
val cat : ('a, 'b) t list -> axis:int -> ('a, 'b) t
val cast : dtype:('c, 'd) Nx_core.Dtype.t -> ('a, 'b) t -> ('c, 'd) t
val gather : ('a, 'b) t -> (int32, Nx_core.Dtype.int32_elt) t -> axis:int -> ('a, 'b) t
val scatter : ?mode:??? -> ?unique_indices:??? -> ('a, 'b) t -> indices:(int32, Nx_core.Dtype.int32_elt) t -> updates:('a, 'b) t -> axis:int -> ('a, 'b) t
val threefry : (int32, Nx_core.Dtype.int32_elt) t -> (int32, Nx_core.Dtype.int32_elt) t -> (int32, Nx_core.Dtype.int32_elt) t
val unfold : ('a, 'b) t -> kernel_size:int array -> stride:int array -> dilation:int array -> padding:(int * int) array -> ('a, 'b) t
val fold : ('a, 'b) t -> output_size:int array -> kernel_size:int array -> stride:int array -> dilation:int array -> padding:(int * int) array -> ('a, 'b) t
val matmul : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t
val fft : ?out:??? -> (Stdlib.Complex.t, 'a) t -> axes:int array -> (Stdlib.Complex.t, 'a) t
val ifft : ?out:??? -> (Stdlib.Complex.t, 'a) t -> axes:int array -> (Stdlib.Complex.t, 'a) t
val rfft : ?out:??? -> (float, 'a) t -> dtype:(Stdlib.Complex.t, 'c) Nx_core.Dtype.t -> axes:int array -> (Stdlib.Complex.t, 'c) t
val irfft : ?out:??? -> ?s:??? -> (Stdlib.Complex.t, 'a) t -> dtype:(float, 'c) Nx_core.Dtype.t -> axes:int array -> (float, 'c) t
val cholesky : upper:bool -> ('a, 'b) t -> ('a, 'b) t
val qr : reduced:bool -> ('a, 'b) t -> ('a, 'b) t * ('a, 'b) t
val svd : full_matrices:bool -> ('a, 'b) t -> ('a, 'b) t * (float, Nx_core.Dtype.float64_elt) t * ('a, 'b) t
val eig : vectors:bool -> ('a, 'b) t -> (Stdlib.Complex.t, Nx_core.Dtype.complex64_elt) t * (Stdlib.Complex.t, Nx_core.Dtype.complex64_elt) t option
val eigh : vectors:bool -> ('a, 'b) t -> (float, Nx_core.Dtype.float64_elt) t * ('a, 'b) t option
val triangular_solve : upper:bool -> transpose:bool -> unit_diag:bool -> ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t