
-- generated by using spec/Declarations.yaml

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE OverloadedStrings #-}

module Torch.Internal.Managed.Native.Native0 where


import Foreign.C.String
import Foreign.C.Types
import Foreign
import Torch.Internal.Type
import Torch.Internal.Class
import Torch.Internal.Cast
import Torch.Internal.Objects
import qualified Torch.Internal.Unmanaged.Native.Native0 as Unmanaged


_cast_Byte_tb
  :: ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr Tensor)
_cast_Byte_tb = _cast2 Unmanaged._cast_Byte_tb

_cast_Byte_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_cast_Byte_t = _cast1 Unmanaged._cast_Byte_t

_cast_Char_tb
  :: ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr Tensor)
_cast_Char_tb = _cast2 Unmanaged._cast_Char_tb

_cast_Char_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_cast_Char_t = _cast1 Unmanaged._cast_Char_t

_cast_Double_tb
  :: ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr Tensor)
_cast_Double_tb = _cast2 Unmanaged._cast_Double_tb

_cast_Double_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_cast_Double_t = _cast1 Unmanaged._cast_Double_t

_cast_Float_tb
  :: ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr Tensor)
_cast_Float_tb = _cast2 Unmanaged._cast_Float_tb

_cast_Float_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_cast_Float_t = _cast1 Unmanaged._cast_Float_t

_cast_Int_tb
  :: ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr Tensor)
_cast_Int_tb = _cast2 Unmanaged._cast_Int_tb

_cast_Int_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_cast_Int_t = _cast1 Unmanaged._cast_Int_t

_cast_Long_tb
  :: ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr Tensor)
_cast_Long_tb = _cast2 Unmanaged._cast_Long_tb

_cast_Long_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_cast_Long_t = _cast1 Unmanaged._cast_Long_t

_cast_Short_tb
  :: ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr Tensor)
_cast_Short_tb = _cast2 Unmanaged._cast_Short_tb

_cast_Short_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_cast_Short_t = _cast1 Unmanaged._cast_Short_t

_cast_Half_tb
  :: ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr Tensor)
_cast_Half_tb = _cast2 Unmanaged._cast_Half_tb

_cast_Half_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_cast_Half_t = _cast1 Unmanaged._cast_Half_t

_make_dual_ttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
_make_dual_ttl = _cast3 Unmanaged._make_dual_ttl

_unpack_dual_tl
  :: ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
_unpack_dual_tl = _cast2 Unmanaged._unpack_dual_tl

_new_zeros_with_same_feature_meta_ttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
_new_zeros_with_same_feature_meta_ttl = _cast3 Unmanaged._new_zeros_with_same_feature_meta_ttl

_new_zeros_with_same_feature_meta_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_new_zeros_with_same_feature_meta_tt = _cast2 Unmanaged._new_zeros_with_same_feature_meta_tt

_has_same_storage_numel_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (CBool)
_has_same_storage_numel_tt = _cast2 Unmanaged._has_same_storage_numel_tt

align_tensors_l
  :: ForeignPtr TensorList
  -> IO (ForeignPtr TensorList)
align_tensors_l = _cast1 Unmanaged.align_tensors_l

_assert_async_t
  :: ForeignPtr Tensor
  -> IO (())
_assert_async_t = _cast1 Unmanaged._assert_async_t

_assert_tensor_metadata_tlls
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> ScalarType
  -> IO (())
_assert_tensor_metadata_tlls = _cast4 Unmanaged._assert_tensor_metadata_tlls

_assert_tensor_metadata_tll
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> IO (())
_assert_tensor_metadata_tll = _cast3 Unmanaged._assert_tensor_metadata_tll

_assert_tensor_metadata_tl
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> IO (())
_assert_tensor_metadata_tl = _cast2 Unmanaged._assert_tensor_metadata_tl

_assert_tensor_metadata_t
  :: ForeignPtr Tensor
  -> IO (())
_assert_tensor_metadata_t = _cast1 Unmanaged._assert_tensor_metadata_t

_use_cudnn_ctc_loss_ttlll
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> Int64
  -> IO (CBool)
_use_cudnn_ctc_loss_ttlll = _cast5 Unmanaged._use_cudnn_ctc_loss_ttlll

_use_cudnn_ctc_loss_ttttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (CBool)
_use_cudnn_ctc_loss_ttttl = _cast5 Unmanaged._use_cudnn_ctc_loss_ttttl

_cudnn_ctc_loss_ttlllbb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> Int64
  -> CBool
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
_cudnn_ctc_loss_ttlllbb = _cast7 Unmanaged._cudnn_ctc_loss_ttlllbb

_cudnn_ctc_loss_ttttlbb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> CBool
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
_cudnn_ctc_loss_ttttlbb = _cast7 Unmanaged._cudnn_ctc_loss_ttttlbb

_use_cudnn_rnn_flatten_weight
  :: IO (CBool)
_use_cudnn_rnn_flatten_weight = _cast0 Unmanaged._use_cudnn_rnn_flatten_weight

_cudnn_rnn_flatten_weight_lllllllbb
  :: ForeignPtr TensorList
  -> Int64
  -> Int64
  -> Int64
  -> Int64
  -> Int64
  -> Int64
  -> CBool
  -> CBool
  -> IO (ForeignPtr Tensor)
_cudnn_rnn_flatten_weight_lllllllbb = _cast9 Unmanaged._cudnn_rnn_flatten_weight_lllllllbb

_cudnn_rnn_tlltttllllbdbblt
  :: ForeignPtr Tensor
  -> ForeignPtr TensorList
  -> Int64
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> Int64
  -> Int64
  -> Int64
  -> CBool
  -> CDouble
  -> CBool
  -> CBool
  -> ForeignPtr IntArray
  -> ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor,Tensor,Tensor,Tensor)))
_cudnn_rnn_tlltttllllbdbblt = _cast16 Unmanaged._cudnn_rnn_tlltttllllbdbblt

_cudnn_rnn_backward_tlltttttttllllbdbbltta
  :: ForeignPtr Tensor
  -> ForeignPtr TensorList
  -> Int64
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> Int64
  -> Int64
  -> Int64
  -> CBool
  -> CDouble
  -> CBool
  -> CBool
  -> ForeignPtr IntArray
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr (StdArray '(CBool,4))
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor,Tensor,TensorList)))
_cudnn_rnn_backward_tlltttttttllllbdbbltta = _cast22 Unmanaged._cudnn_rnn_backward_tlltttttttllllbdbbltta

_cudnn_init_dropout_state_dblo
  :: CDouble
  -> CBool
  -> Int64
  -> ForeignPtr TensorOptions
  -> IO (ForeignPtr Tensor)
_cudnn_init_dropout_state_dblo = _cast4 Unmanaged._cudnn_init_dropout_state_dblo

_debug_has_internal_overlap_t
  :: ForeignPtr Tensor
  -> IO (Int64)
_debug_has_internal_overlap_t = _cast1 Unmanaged._debug_has_internal_overlap_t

_fused_dropout_tdG
  :: ForeignPtr Tensor
  -> CDouble
  -> ForeignPtr Generator
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
_fused_dropout_tdG = _cast3 Unmanaged._fused_dropout_tdG

_fused_dropout_td
  :: ForeignPtr Tensor
  -> CDouble
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
_fused_dropout_td = _cast2 Unmanaged._fused_dropout_td

_masked_scale_ttd
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CDouble
  -> IO (ForeignPtr Tensor)
_masked_scale_ttd = _cast3 Unmanaged._masked_scale_ttd

native_dropout_tdb
  :: ForeignPtr Tensor
  -> CDouble
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
native_dropout_tdb = _cast3 Unmanaged.native_dropout_tdb

native_dropout_backward_ttd
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CDouble
  -> IO (ForeignPtr Tensor)
native_dropout_backward_ttd = _cast3 Unmanaged.native_dropout_backward_ttd

_sobol_engine_draw_tltlls
  :: ForeignPtr Tensor
  -> Int64
  -> ForeignPtr Tensor
  -> Int64
  -> Int64
  -> ScalarType
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
_sobol_engine_draw_tltlls = _cast6 Unmanaged._sobol_engine_draw_tltlls

_sobol_engine_ff__tltll
  :: ForeignPtr Tensor
  -> Int64
  -> ForeignPtr Tensor
  -> Int64
  -> Int64
  -> IO (ForeignPtr Tensor)
_sobol_engine_ff__tltll = _cast5 Unmanaged._sobol_engine_ff__tltll

_sobol_engine_scramble__ttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
_sobol_engine_scramble__ttl = _cast3 Unmanaged._sobol_engine_scramble__ttl

_sobol_engine_initialize_state__tl
  :: ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
_sobol_engine_initialize_state__tl = _cast2 Unmanaged._sobol_engine_initialize_state__tl

_reshape_from_tensor_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_reshape_from_tensor_tt = _cast2 Unmanaged._reshape_from_tensor_tt

_shape_as_tensor_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_shape_as_tensor_t = _cast1 Unmanaged._shape_as_tensor_t

dropout_tdb
  :: ForeignPtr Tensor
  -> CDouble
  -> CBool
  -> IO (ForeignPtr Tensor)
dropout_tdb = _cast3 Unmanaged.dropout_tdb

dropout__tdb
  :: ForeignPtr Tensor
  -> CDouble
  -> CBool
  -> IO (ForeignPtr Tensor)
dropout__tdb = _cast3 Unmanaged.dropout__tdb

feature_dropout_tdb
  :: ForeignPtr Tensor
  -> CDouble
  -> CBool
  -> IO (ForeignPtr Tensor)
feature_dropout_tdb = _cast3 Unmanaged.feature_dropout_tdb

feature_dropout__tdb
  :: ForeignPtr Tensor
  -> CDouble
  -> CBool
  -> IO (ForeignPtr Tensor)
feature_dropout__tdb = _cast3 Unmanaged.feature_dropout__tdb

alpha_dropout_tdb
  :: ForeignPtr Tensor
  -> CDouble
  -> CBool
  -> IO (ForeignPtr Tensor)
alpha_dropout_tdb = _cast3 Unmanaged.alpha_dropout_tdb

alpha_dropout__tdb
  :: ForeignPtr Tensor
  -> CDouble
  -> CBool
  -> IO (ForeignPtr Tensor)
alpha_dropout__tdb = _cast3 Unmanaged.alpha_dropout__tdb

feature_alpha_dropout_tdb
  :: ForeignPtr Tensor
  -> CDouble
  -> CBool
  -> IO (ForeignPtr Tensor)
feature_alpha_dropout_tdb = _cast3 Unmanaged.feature_alpha_dropout_tdb

feature_alpha_dropout__tdb
  :: ForeignPtr Tensor
  -> CDouble
  -> CBool
  -> IO (ForeignPtr Tensor)
feature_alpha_dropout__tdb = _cast3 Unmanaged.feature_alpha_dropout__tdb

abs_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
abs_t = _cast1 Unmanaged.abs_t

abs__t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
abs__t = _cast1 Unmanaged.abs__t

abs_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
abs_out_tt = _cast2 Unmanaged.abs_out_tt

absolute_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
absolute_t = _cast1 Unmanaged.absolute_t

absolute_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
absolute_out_tt = _cast2 Unmanaged.absolute_out_tt

angle_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
angle_t = _cast1 Unmanaged.angle_t

angle_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
angle_out_tt = _cast2 Unmanaged.angle_out_tt

view_as_real_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
view_as_real_t = _cast1 Unmanaged.view_as_real_t

view_as_complex_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
view_as_complex_t = _cast1 Unmanaged.view_as_complex_t

sgn_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
sgn_t = _cast1 Unmanaged.sgn_t

sgn_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
sgn_out_tt = _cast2 Unmanaged.sgn_out_tt

real_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
real_t = _cast1 Unmanaged.real_t

imag_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
imag_t = _cast1 Unmanaged.imag_t

_conj_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_conj_t = _cast1 Unmanaged._conj_t

conj_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
conj_t = _cast1 Unmanaged.conj_t

_conj_physical_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_conj_physical_t = _cast1 Unmanaged._conj_physical_t

conj_physical_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
conj_physical_t = _cast1 Unmanaged.conj_physical_t

conj_physical_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
conj_physical_out_tt = _cast2 Unmanaged.conj_physical_out_tt

conj_physical__t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
conj_physical__t = _cast1 Unmanaged.conj_physical__t

resolve_conj_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
resolve_conj_t = _cast1 Unmanaged.resolve_conj_t

resolve_neg_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
resolve_neg_t = _cast1 Unmanaged.resolve_neg_t

_neg_view_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_neg_view_t = _cast1 Unmanaged._neg_view_t

acos_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
acos_t = _cast1 Unmanaged.acos_t

acos__t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
acos__t = _cast1 Unmanaged.acos__t

acos_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
acos_out_tt = _cast2 Unmanaged.acos_out_tt

arccos_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arccos_t = _cast1 Unmanaged.arccos_t

arccos__t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arccos__t = _cast1 Unmanaged.arccos__t

arccos_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arccos_out_tt = _cast2 Unmanaged.arccos_out_tt

avg_pool1d_tlllbb
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> CBool
  -> CBool
  -> IO (ForeignPtr Tensor)
avg_pool1d_tlllbb = _cast6 Unmanaged.avg_pool1d_tlllbb

avg_pool1d_tlllb
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> CBool
  -> IO (ForeignPtr Tensor)
avg_pool1d_tlllb = _cast5 Unmanaged.avg_pool1d_tlllb

avg_pool1d_tlll
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> IO (ForeignPtr Tensor)
avg_pool1d_tlll = _cast4 Unmanaged.avg_pool1d_tlll

avg_pool1d_tll
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> IO (ForeignPtr Tensor)
avg_pool1d_tll = _cast3 Unmanaged.avg_pool1d_tll

avg_pool1d_tl
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> IO (ForeignPtr Tensor)
avg_pool1d_tl = _cast2 Unmanaged.avg_pool1d_tl

adaptive_avg_pool1d_tl
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> IO (ForeignPtr Tensor)
adaptive_avg_pool1d_tl = _cast2 Unmanaged.adaptive_avg_pool1d_tl

adaptive_max_pool1d_tl
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
adaptive_max_pool1d_tl = _cast2 Unmanaged.adaptive_max_pool1d_tl

add_tts
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
add_tts = _cast3 Unmanaged.add_tts

add_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
add_tt = _cast2 Unmanaged.add_tt

add_out_ttts
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
add_out_ttts = _cast4 Unmanaged.add_out_ttts

add_out_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
add_out_ttt = _cast3 Unmanaged.add_out_ttt

_add_relu_tts
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
_add_relu_tts = _cast3 Unmanaged._add_relu_tts

_add_relu_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_add_relu_tt = _cast2 Unmanaged._add_relu_tt

_add_relu__tts
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
_add_relu__tts = _cast3 Unmanaged._add_relu__tts

_add_relu__tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_add_relu__tt = _cast2 Unmanaged._add_relu__tt

_add_relu_out_ttts
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
_add_relu_out_ttts = _cast4 Unmanaged._add_relu_out_ttts

_add_relu_out_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_add_relu_out_ttt = _cast3 Unmanaged._add_relu_out_ttt

_add_relu_tss
  :: ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
_add_relu_tss = _cast3 Unmanaged._add_relu_tss

_add_relu_ts
  :: ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
_add_relu_ts = _cast2 Unmanaged._add_relu_ts

_add_relu__tss
  :: ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
_add_relu__tss = _cast3 Unmanaged._add_relu__tss

_add_relu__ts
  :: ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
_add_relu__ts = _cast2 Unmanaged._add_relu__ts

add_tss
  :: ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
add_tss = _cast3 Unmanaged.add_tss

add_ts
  :: ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
add_ts = _cast2 Unmanaged.add_ts

addmv_tttss
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
addmv_tttss = _cast5 Unmanaged.addmv_tttss

addmv_ttts
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
addmv_ttts = _cast4 Unmanaged.addmv_ttts

addmv_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
addmv_ttt = _cast3 Unmanaged.addmv_ttt

addmv__tttss
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
addmv__tttss = _cast5 Unmanaged.addmv__tttss

addmv__ttts
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
addmv__ttts = _cast4 Unmanaged.addmv__ttts

addmv__ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
addmv__ttt = _cast3 Unmanaged.addmv__ttt

addmv_out_ttttss
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
addmv_out_ttttss = _cast6 Unmanaged.addmv_out_ttttss

addmv_out_tttts
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
addmv_out_tttts = _cast5 Unmanaged.addmv_out_tttts

addmv_out_tttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
addmv_out_tttt = _cast4 Unmanaged.addmv_out_tttt

addr_tttss
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
addr_tttss = _cast5 Unmanaged.addr_tttss

addr_ttts
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
addr_ttts = _cast4 Unmanaged.addr_ttts

addr_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
addr_ttt = _cast3 Unmanaged.addr_ttt

addr_out_ttttss
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
addr_out_ttttss = _cast6 Unmanaged.addr_out_ttttss

addr_out_tttts
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
addr_out_tttts = _cast5 Unmanaged.addr_out_tttts

addr_out_tttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
addr_out_tttt = _cast4 Unmanaged.addr_out_tttt

affine_grid_generator_tlb
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> CBool
  -> IO (ForeignPtr Tensor)
affine_grid_generator_tlb = _cast3 Unmanaged.affine_grid_generator_tlb

affine_grid_generator_backward_tlb
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> CBool
  -> IO (ForeignPtr Tensor)
affine_grid_generator_backward_tlb = _cast3 Unmanaged.affine_grid_generator_backward_tlb

_is_all_true_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_is_all_true_t = _cast1 Unmanaged._is_all_true_t

_is_any_true_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_is_any_true_t = _cast1 Unmanaged._is_any_true_t

_test_check_tensor_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_test_check_tensor_t = _cast1 Unmanaged._test_check_tensor_t

all_tlb
  :: ForeignPtr Tensor
  -> Int64
  -> CBool
  -> IO (ForeignPtr Tensor)
all_tlb = _cast3 Unmanaged.all_tlb

all_tl
  :: ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
all_tl = _cast2 Unmanaged.all_tl

all_out_ttlb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> CBool
  -> IO (ForeignPtr Tensor)
all_out_ttlb = _cast4 Unmanaged.all_out_ttlb

all_out_ttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
all_out_ttl = _cast3 Unmanaged.all_out_ttl

all_tnb
  :: ForeignPtr Tensor
  -> ForeignPtr Dimname
  -> CBool
  -> IO (ForeignPtr Tensor)
all_tnb = _cast3 Unmanaged.all_tnb

all_tn
  :: ForeignPtr Tensor
  -> ForeignPtr Dimname
  -> IO (ForeignPtr Tensor)
all_tn = _cast2 Unmanaged.all_tn

all_out_ttnb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Dimname
  -> CBool
  -> IO (ForeignPtr Tensor)
all_out_ttnb = _cast4 Unmanaged.all_out_ttnb

all_out_ttn
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Dimname
  -> IO (ForeignPtr Tensor)
all_out_ttn = _cast3 Unmanaged.all_out_ttn

allclose_ttddb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CDouble
  -> CDouble
  -> CBool
  -> IO (CBool)
allclose_ttddb = _cast5 Unmanaged.allclose_ttddb

allclose_ttdd
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CDouble
  -> CDouble
  -> IO (CBool)
allclose_ttdd = _cast4 Unmanaged.allclose_ttdd

allclose_ttd
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CDouble
  -> IO (CBool)
allclose_ttd = _cast3 Unmanaged.allclose_ttd

allclose_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (CBool)
allclose_tt = _cast2 Unmanaged.allclose_tt

any_tlb
  :: ForeignPtr Tensor
  -> Int64
  -> CBool
  -> IO (ForeignPtr Tensor)
any_tlb = _cast3 Unmanaged.any_tlb

any_tl
  :: ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
any_tl = _cast2 Unmanaged.any_tl

any_out_ttlb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> CBool
  -> IO (ForeignPtr Tensor)
any_out_ttlb = _cast4 Unmanaged.any_out_ttlb

any_out_ttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
any_out_ttl = _cast3 Unmanaged.any_out_ttl

any_tnb
  :: ForeignPtr Tensor
  -> ForeignPtr Dimname
  -> CBool
  -> IO (ForeignPtr Tensor)
any_tnb = _cast3 Unmanaged.any_tnb

any_tn
  :: ForeignPtr Tensor
  -> ForeignPtr Dimname
  -> IO (ForeignPtr Tensor)
any_tn = _cast2 Unmanaged.any_tn

any_out_ttnb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Dimname
  -> CBool
  -> IO (ForeignPtr Tensor)
any_out_ttnb = _cast4 Unmanaged.any_out_ttnb

any_out_ttn
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Dimname
  -> IO (ForeignPtr Tensor)
any_out_ttn = _cast3 Unmanaged.any_out_ttn

arange_so
  :: ForeignPtr Scalar
  -> ForeignPtr TensorOptions
  -> IO (ForeignPtr Tensor)
arange_so = _cast2 Unmanaged.arange_so

arange_s
  :: ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
arange_s = _cast1 Unmanaged.arange_s

arange_sso
  :: ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> ForeignPtr TensorOptions
  -> IO (ForeignPtr Tensor)
arange_sso = _cast3 Unmanaged.arange_sso

arange_ss
  :: ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
arange_ss = _cast2 Unmanaged.arange_ss

arange_ssso
  :: ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> ForeignPtr TensorOptions
  -> IO (ForeignPtr Tensor)
arange_ssso = _cast4 Unmanaged.arange_ssso

arange_sss
  :: ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
arange_sss = _cast3 Unmanaged.arange_sss

arange_out_ts
  :: ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
arange_out_ts = _cast2 Unmanaged.arange_out_ts

arange_out_tsss
  :: ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
arange_out_tsss = _cast4 Unmanaged.arange_out_tsss

-- arange_out_tss
--   :: ForeignPtr Tensor
--   -> ForeignPtr Scalar
--   -> ForeignPtr Scalar
--   -> IO (ForeignPtr Tensor)
-- arange_out_tss = _cast3 Unmanaged.arange_out_tss

_dim_arange_tl
  :: ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
_dim_arange_tl = _cast2 Unmanaged._dim_arange_tl

argmax_tlb
  :: ForeignPtr Tensor
  -> Int64
  -> CBool
  -> IO (ForeignPtr Tensor)
argmax_tlb = _cast3 Unmanaged.argmax_tlb

argmax_tl
  :: ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
argmax_tl = _cast2 Unmanaged.argmax_tl

argmax_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
argmax_t = _cast1 Unmanaged.argmax_t

argmax_out_ttlb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> CBool
  -> IO (ForeignPtr Tensor)
argmax_out_ttlb = _cast4 Unmanaged.argmax_out_ttlb

argmax_out_ttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
argmax_out_ttl = _cast3 Unmanaged.argmax_out_ttl

argmax_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
argmax_out_tt = _cast2 Unmanaged.argmax_out_tt

argmin_tlb
  :: ForeignPtr Tensor
  -> Int64
  -> CBool
  -> IO (ForeignPtr Tensor)
argmin_tlb = _cast3 Unmanaged.argmin_tlb

argmin_tl
  :: ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
argmin_tl = _cast2 Unmanaged.argmin_tl

argmin_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
argmin_t = _cast1 Unmanaged.argmin_t

argmin_out_ttlb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> CBool
  -> IO (ForeignPtr Tensor)
argmin_out_ttlb = _cast4 Unmanaged.argmin_out_ttlb

argmin_out_ttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
argmin_out_ttl = _cast3 Unmanaged.argmin_out_ttl

argmin_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
argmin_out_tt = _cast2 Unmanaged.argmin_out_tt

acosh_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
acosh_t = _cast1 Unmanaged.acosh_t

acosh__t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
acosh__t = _cast1 Unmanaged.acosh__t

acosh_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
acosh_out_tt = _cast2 Unmanaged.acosh_out_tt

arccosh_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arccosh_t = _cast1 Unmanaged.arccosh_t

arccosh__t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arccosh__t = _cast1 Unmanaged.arccosh__t

arccosh_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arccosh_out_tt = _cast2 Unmanaged.arccosh_out_tt

asinh_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
asinh_t = _cast1 Unmanaged.asinh_t

asinh__t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
asinh__t = _cast1 Unmanaged.asinh__t

asinh_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
asinh_out_tt = _cast2 Unmanaged.asinh_out_tt

arcsinh_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arcsinh_t = _cast1 Unmanaged.arcsinh_t

arcsinh__t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arcsinh__t = _cast1 Unmanaged.arcsinh__t

arcsinh_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arcsinh_out_tt = _cast2 Unmanaged.arcsinh_out_tt

atanh_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
atanh_t = _cast1 Unmanaged.atanh_t

atanh__t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
atanh__t = _cast1 Unmanaged.atanh__t

atanh_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
atanh_out_tt = _cast2 Unmanaged.atanh_out_tt

arctanh_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arctanh_t = _cast1 Unmanaged.arctanh_t

arctanh__t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arctanh__t = _cast1 Unmanaged.arctanh__t

arctanh_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arctanh_out_tt = _cast2 Unmanaged.arctanh_out_tt

as_strided_tlll
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> Int64
  -> IO (ForeignPtr Tensor)
as_strided_tlll = _cast4 Unmanaged.as_strided_tlll

as_strided_tll
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> IO (ForeignPtr Tensor)
as_strided_tll = _cast3 Unmanaged.as_strided_tll

as_strided__tlll
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> Int64
  -> IO (ForeignPtr Tensor)
as_strided__tlll = _cast4 Unmanaged.as_strided__tlll

as_strided__tll
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr IntArray
  -> IO (ForeignPtr Tensor)
as_strided__tll = _cast3 Unmanaged.as_strided__tll

asin_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
asin_t = _cast1 Unmanaged.asin_t

asin__t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
asin__t = _cast1 Unmanaged.asin__t

asin_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
asin_out_tt = _cast2 Unmanaged.asin_out_tt

arcsin_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arcsin_t = _cast1 Unmanaged.arcsin_t

arcsin__t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arcsin__t = _cast1 Unmanaged.arcsin__t

arcsin_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arcsin_out_tt = _cast2 Unmanaged.arcsin_out_tt

atan_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
atan_t = _cast1 Unmanaged.atan_t

atan__t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
atan__t = _cast1 Unmanaged.atan__t

atan_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
atan_out_tt = _cast2 Unmanaged.atan_out_tt

arctan_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arctan_t = _cast1 Unmanaged.arctan_t

arctan__t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arctan__t = _cast1 Unmanaged.arctan__t

arctan_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
arctan_out_tt = _cast2 Unmanaged.arctan_out_tt

atleast_1d_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
atleast_1d_t = _cast1 Unmanaged.atleast_1d_t

atleast_1d_l
  :: ForeignPtr TensorList
  -> IO (ForeignPtr TensorList)
atleast_1d_l = _cast1 Unmanaged.atleast_1d_l

atleast_2d_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
atleast_2d_t = _cast1 Unmanaged.atleast_2d_t

atleast_2d_l
  :: ForeignPtr TensorList
  -> IO (ForeignPtr TensorList)
atleast_2d_l = _cast1 Unmanaged.atleast_2d_l

atleast_3d_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
atleast_3d_t = _cast1 Unmanaged.atleast_3d_t

atleast_3d_l
  :: ForeignPtr TensorList
  -> IO (ForeignPtr TensorList)
atleast_3d_l = _cast1 Unmanaged.atleast_3d_l

baddbmm_tttss
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
baddbmm_tttss = _cast5 Unmanaged.baddbmm_tttss

baddbmm_ttts
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
baddbmm_ttts = _cast4 Unmanaged.baddbmm_ttts

baddbmm_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
baddbmm_ttt = _cast3 Unmanaged.baddbmm_ttt

baddbmm_out_ttttss
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
baddbmm_out_ttttss = _cast6 Unmanaged.baddbmm_out_ttttss

baddbmm_out_tttts
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
baddbmm_out_tttts = _cast5 Unmanaged.baddbmm_out_tttts

baddbmm_out_tttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
baddbmm_out_tttt = _cast4 Unmanaged.baddbmm_out_tttt

bartlett_window_lo
  :: Int64
  -> ForeignPtr TensorOptions
  -> IO (ForeignPtr Tensor)
bartlett_window_lo = _cast2 Unmanaged.bartlett_window_lo

bartlett_window_l
  :: Int64
  -> IO (ForeignPtr Tensor)
bartlett_window_l = _cast1 Unmanaged.bartlett_window_l

bartlett_window_lbo
  :: Int64
  -> CBool
  -> ForeignPtr TensorOptions
  -> IO (ForeignPtr Tensor)
bartlett_window_lbo = _cast3 Unmanaged.bartlett_window_lbo

bartlett_window_lb
  :: Int64
  -> CBool
  -> IO (ForeignPtr Tensor)
bartlett_window_lb = _cast2 Unmanaged.bartlett_window_lb

batch_norm_tttttbddb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CBool
  -> CDouble
  -> CDouble
  -> CBool
  -> IO (ForeignPtr Tensor)
batch_norm_tttttbddb = _cast9 Unmanaged.batch_norm_tttttbddb

quantized_batch_norm_tttttddl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CDouble
  -> CDouble
  -> Int64
  -> IO (ForeignPtr Tensor)
quantized_batch_norm_tttttddl = _cast8 Unmanaged.quantized_batch_norm_tttttddl

_batch_norm_impl_index_tttttbddb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CBool
  -> CDouble
  -> CDouble
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor,Tensor,Tensor,Int64)))
_batch_norm_impl_index_tttttbddb = _cast9 Unmanaged._batch_norm_impl_index_tttttbddb

_batch_norm_impl_index_backward_ltttttttbdat
  :: Int64
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CBool
  -> CDouble
  -> ForeignPtr (StdArray '(CBool,3))
  -> ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor,Tensor)))
_batch_norm_impl_index_backward_ltttttttbdat = _cast12 Unmanaged._batch_norm_impl_index_backward_ltttttttbdat

bernoulli_tG
  :: ForeignPtr Tensor
  -> ForeignPtr Generator
  -> IO (ForeignPtr Tensor)
bernoulli_tG = _cast2 Unmanaged.bernoulli_tG

bernoulli_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
bernoulli_t = _cast1 Unmanaged.bernoulli_t

bernoulli_out_ttG
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Generator
  -> IO (ForeignPtr Tensor)
bernoulli_out_ttG = _cast3 Unmanaged.bernoulli_out_ttG

-- bernoulli_out_tt
--   :: ForeignPtr Tensor
--   -> ForeignPtr Tensor
--   -> IO (ForeignPtr Tensor)
-- bernoulli_out_tt = _cast2 Unmanaged.bernoulli_out_tt

bernoulli_tdG
  :: ForeignPtr Tensor
  -> CDouble
  -> ForeignPtr Generator
  -> IO (ForeignPtr Tensor)
bernoulli_tdG = _cast3 Unmanaged.bernoulli_tdG

bernoulli_td
  :: ForeignPtr Tensor
  -> CDouble
  -> IO (ForeignPtr Tensor)
bernoulli_td = _cast2 Unmanaged.bernoulli_td

bilinear_tttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
bilinear_tttt = _cast4 Unmanaged.bilinear_tttt

bilinear_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
bilinear_ttt = _cast3 Unmanaged.bilinear_ttt

binary_cross_entropy_tttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_tttl = _cast4 Unmanaged.binary_cross_entropy_tttl

binary_cross_entropy_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_ttt = _cast3 Unmanaged.binary_cross_entropy_ttt

binary_cross_entropy_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_tt = _cast2 Unmanaged.binary_cross_entropy_tt

binary_cross_entropy_out_ttttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_out_ttttl = _cast5 Unmanaged.binary_cross_entropy_out_ttttl

binary_cross_entropy_out_tttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_out_tttt = _cast4 Unmanaged.binary_cross_entropy_out_tttt

binary_cross_entropy_out_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_out_ttt = _cast3 Unmanaged.binary_cross_entropy_out_ttt

binary_cross_entropy_backward_ttttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_backward_ttttl = _cast5 Unmanaged.binary_cross_entropy_backward_ttttl

binary_cross_entropy_backward_tttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_backward_tttt = _cast4 Unmanaged.binary_cross_entropy_backward_tttt

binary_cross_entropy_backward_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_backward_ttt = _cast3 Unmanaged.binary_cross_entropy_backward_ttt

binary_cross_entropy_backward_out_tttttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_backward_out_tttttl = _cast6 Unmanaged.binary_cross_entropy_backward_out_tttttl

binary_cross_entropy_backward_out_ttttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_backward_out_ttttt = _cast5 Unmanaged.binary_cross_entropy_backward_out_ttttt

binary_cross_entropy_backward_out_tttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_backward_out_tttt = _cast4 Unmanaged.binary_cross_entropy_backward_out_tttt

binary_cross_entropy_with_logits_ttttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_with_logits_ttttl = _cast5 Unmanaged.binary_cross_entropy_with_logits_ttttl

binary_cross_entropy_with_logits_tttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_with_logits_tttt = _cast4 Unmanaged.binary_cross_entropy_with_logits_tttt

binary_cross_entropy_with_logits_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_with_logits_ttt = _cast3 Unmanaged.binary_cross_entropy_with_logits_ttt

binary_cross_entropy_with_logits_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
binary_cross_entropy_with_logits_tt = _cast2 Unmanaged.binary_cross_entropy_with_logits_tt

bincount_ttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr Tensor)
bincount_ttl = _cast3 Unmanaged.bincount_ttl

bincount_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
bincount_tt = _cast2 Unmanaged.bincount_tt

bincount_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
bincount_t = _cast1 Unmanaged.bincount_t

bitwise_not_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
bitwise_not_t = _cast1 Unmanaged.bitwise_not_t

bitwise_not_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
bitwise_not_out_tt = _cast2 Unmanaged.bitwise_not_out_tt

copysign_out_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
copysign_out_ttt = _cast3 Unmanaged.copysign_out_ttt

copysign_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
copysign_tt = _cast2 Unmanaged.copysign_tt

copysign_ts
  :: ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
copysign_ts = _cast2 Unmanaged.copysign_ts

copysign_out_tts
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Scalar
  -> IO (ForeignPtr Tensor)
copysign_out_tts = _cast3 Unmanaged.copysign_out_tts

logical_not_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
logical_not_t = _cast1 Unmanaged.logical_not_t

logical_not_out_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
logical_not_out_tt = _cast2 Unmanaged.logical_not_out_tt

logical_xor_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
logical_xor_tt = _cast2 Unmanaged.logical_xor_tt

logical_xor_out_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
logical_xor_out_ttt = _cast3 Unmanaged.logical_xor_out_ttt

logical_and_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
logical_and_tt = _cast2 Unmanaged.logical_and_tt

logical_and_out_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
logical_and_out_ttt = _cast3 Unmanaged.logical_and_out_ttt

logical_or_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
logical_or_tt = _cast2 Unmanaged.logical_or_tt

logical_or_out_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
logical_or_out_ttt = _cast3 Unmanaged.logical_or_out_ttt

blackman_window_lo
  :: Int64
  -> ForeignPtr TensorOptions
  -> IO (ForeignPtr Tensor)
blackman_window_lo = _cast2 Unmanaged.blackman_window_lo

blackman_window_l
  :: Int64
  -> IO (ForeignPtr Tensor)
blackman_window_l = _cast1 Unmanaged.blackman_window_l

blackman_window_lbo
  :: Int64
  -> CBool
  -> ForeignPtr TensorOptions
  -> IO (ForeignPtr Tensor)
blackman_window_lbo = _cast3 Unmanaged.blackman_window_lbo

blackman_window_lb
  :: Int64
  -> CBool
  -> IO (ForeignPtr Tensor)
blackman_window_lb = _cast2 Unmanaged.blackman_window_lb

bmm_tt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
bmm_tt = _cast2 Unmanaged.bmm_tt

bmm_out_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
bmm_out_ttt = _cast3 Unmanaged.bmm_out_ttt

broadcast_tensors_l
  :: ForeignPtr TensorList
  -> IO (ForeignPtr TensorList)
broadcast_tensors_l = _cast1 Unmanaged.broadcast_tensors_l

broadcast_to_tl
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> IO (ForeignPtr Tensor)
broadcast_to_tl = _cast2 Unmanaged.broadcast_to_tl

_sparse_broadcast_to_tl
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> IO (ForeignPtr Tensor)
_sparse_broadcast_to_tl = _cast2 Unmanaged._sparse_broadcast_to_tl

cat_ll
  :: ForeignPtr TensorList
  -> Int64
  -> IO (ForeignPtr Tensor)
cat_ll = _cast2 Unmanaged.cat_ll

cat_l
  :: ForeignPtr TensorList
  -> IO (ForeignPtr Tensor)
cat_l = _cast1 Unmanaged.cat_l

cat_out_tll
  :: ForeignPtr Tensor
  -> ForeignPtr TensorList
  -> Int64
  -> IO (ForeignPtr Tensor)
cat_out_tll = _cast3 Unmanaged.cat_out_tll

cat_out_tl
  :: ForeignPtr Tensor
  -> ForeignPtr TensorList
  -> IO (ForeignPtr Tensor)
cat_out_tl = _cast2 Unmanaged.cat_out_tl

cat_ln
  :: ForeignPtr TensorList
  -> ForeignPtr Dimname
  -> IO (ForeignPtr Tensor)
cat_ln = _cast2 Unmanaged.cat_ln

cat_out_tln
  :: ForeignPtr Tensor
  -> ForeignPtr TensorList
  -> ForeignPtr Dimname
  -> IO (ForeignPtr Tensor)
cat_out_tln = _cast3 Unmanaged.cat_out_tln

concat_ll
  :: ForeignPtr TensorList
  -> Int64
  -> IO (ForeignPtr Tensor)
concat_ll = _cast2 Unmanaged.concat_ll

concat_l
  :: ForeignPtr TensorList
  -> IO (ForeignPtr Tensor)
concat_l = _cast1 Unmanaged.concat_l

concat_out_tll
  :: ForeignPtr Tensor
  -> ForeignPtr TensorList
  -> Int64
  -> IO (ForeignPtr Tensor)
concat_out_tll = _cast3 Unmanaged.concat_out_tll

concat_out_tl
  :: ForeignPtr Tensor
  -> ForeignPtr TensorList
  -> IO (ForeignPtr Tensor)
concat_out_tl = _cast2 Unmanaged.concat_out_tl

concat_ln
  :: ForeignPtr TensorList
  -> ForeignPtr Dimname
  -> IO (ForeignPtr Tensor)
concat_ln = _cast2 Unmanaged.concat_ln

concat_out_tln
  :: ForeignPtr Tensor
  -> ForeignPtr TensorList
  -> ForeignPtr Dimname
  -> IO (ForeignPtr Tensor)
concat_out_tln = _cast3 Unmanaged.concat_out_tln

concatenate_ll
  :: ForeignPtr TensorList
  -> Int64
  -> IO (ForeignPtr Tensor)
concatenate_ll = _cast2 Unmanaged.concatenate_ll

concatenate_l
  :: ForeignPtr TensorList
  -> IO (ForeignPtr Tensor)
concatenate_l = _cast1 Unmanaged.concatenate_l

concatenate_out_tll
  :: ForeignPtr Tensor
  -> ForeignPtr TensorList
  -> Int64
  -> IO (ForeignPtr Tensor)
concatenate_out_tll = _cast3 Unmanaged.concatenate_out_tll

concatenate_out_tl
  :: ForeignPtr Tensor
  -> ForeignPtr TensorList
  -> IO (ForeignPtr Tensor)
concatenate_out_tl = _cast2 Unmanaged.concatenate_out_tl

concatenate_ln
  :: ForeignPtr TensorList
  -> ForeignPtr Dimname
  -> IO (ForeignPtr Tensor)
concatenate_ln = _cast2 Unmanaged.concatenate_ln

concatenate_out_tln
  :: ForeignPtr Tensor
  -> ForeignPtr TensorList
  -> ForeignPtr Dimname
  -> IO (ForeignPtr Tensor)
concatenate_out_tln = _cast3 Unmanaged.concatenate_out_tln

