
-- generated by using spec/Declarations.yaml

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

module Torch.Internal.Managed.Native.Native7 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.Native7 as Unmanaged


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

gather_out_ttntb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Dimname
  -> ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr Tensor)
gather_out_ttntb = _cast5 Unmanaged.gather_out_ttntb

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

triangular_solve_out_ttttbb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CBool
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
triangular_solve_out_ttttbb = _cast6 Unmanaged.triangular_solve_out_ttttbb

triangular_solve_out_ttttb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
triangular_solve_out_ttttb = _cast5 Unmanaged.triangular_solve_out_ttttb

triangular_solve_out_tttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
triangular_solve_out_tttt = _cast4 Unmanaged.triangular_solve_out_tttt

triangular_solve_ttbbb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CBool
  -> CBool
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
triangular_solve_ttbbb = _cast5 Unmanaged.triangular_solve_ttbbb

triangular_solve_ttbb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CBool
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
triangular_solve_ttbb = _cast4 Unmanaged.triangular_solve_ttbb

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

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

_linalg_check_errors_tsb
  :: ForeignPtr Tensor
  -> ForeignPtr StdString
  -> CBool
  -> IO (())
_linalg_check_errors_tsb = _cast3 Unmanaged._linalg_check_errors_tsb

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

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

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

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

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

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

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

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

svd_out_ttttbb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CBool
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor,Tensor)))
svd_out_ttttbb = _cast6 Unmanaged.svd_out_ttttbb

svd_out_ttttb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor,Tensor)))
svd_out_ttttb = _cast5 Unmanaged.svd_out_ttttb

svd_out_tttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor,Tensor)))
svd_out_tttt = _cast4 Unmanaged.svd_out_tttt

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

svd_tb
  :: ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor,Tensor)))
svd_tb = _cast2 Unmanaged.svd_tb

svd_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor,Tensor)))
svd_t = _cast1 Unmanaged.svd_t

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

qr_out_tttb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
qr_out_tttb = _cast4 Unmanaged.qr_out_tttb

qr_out_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
qr_out_ttt = _cast3 Unmanaged.qr_out_ttt

qr_tb
  :: ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
qr_tb = _cast2 Unmanaged.qr_tb

qr_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
qr_t = _cast1 Unmanaged.qr_t

geqrf_out_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
geqrf_out_ttt = _cast3 Unmanaged.geqrf_out_ttt

geqrf_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
geqrf_t = _cast1 Unmanaged.geqrf_t

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

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

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

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

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

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

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

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

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

_lu_with_info_tb
  :: ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor,Tensor)))
_lu_with_info_tb = _cast2 Unmanaged._lu_with_info_tb

_lu_with_info_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor,Tensor)))
_lu_with_info_t = _cast1 Unmanaged._lu_with_info_t

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

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

lu_unpack_ttbb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CBool
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor,Tensor)))
lu_unpack_ttbb = _cast4 Unmanaged.lu_unpack_ttbb

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

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

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

lu_unpack_out_tttttb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor,Tensor)))
lu_unpack_out_tttttb = _cast6 Unmanaged.lu_unpack_out_tttttb

lu_unpack_out_ttttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor,Tensor)))
lu_unpack_out_ttttt = _cast5 Unmanaged.lu_unpack_out_ttttt

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

histogram_out_tttttb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
histogram_out_tttttb = _cast6 Unmanaged.histogram_out_tttttb

histogram_out_ttttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
histogram_out_ttttt = _cast5 Unmanaged.histogram_out_ttttt

histogram_out_tttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
histogram_out_tttt = _cast4 Unmanaged.histogram_out_tttt

histogram_tttb
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
histogram_tttb = _cast4 Unmanaged.histogram_tttb

histogram_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
histogram_ttt = _cast3 Unmanaged.histogram_ttt

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

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

histogram_out_tttlat
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> ForeignPtr (StdVector CDouble)
  -> ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
histogram_out_tttlat = _cast6 Unmanaged.histogram_out_tttlat

histogram_out_tttla
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> ForeignPtr (StdVector CDouble)
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
histogram_out_tttla = _cast5 Unmanaged.histogram_out_tttla

histogram_out_tttl
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
histogram_out_tttl = _cast4 Unmanaged.histogram_out_tttl

histogram_out_ttt
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
histogram_out_ttt = _cast3 Unmanaged.histogram_out_ttt

histogram_tlatb
  :: ForeignPtr Tensor
  -> Int64
  -> ForeignPtr (StdVector CDouble)
  -> ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
histogram_tlatb = _cast5 Unmanaged.histogram_tlatb

histogram_tlat
  :: ForeignPtr Tensor
  -> Int64
  -> ForeignPtr (StdVector CDouble)
  -> ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
histogram_tlat = _cast4 Unmanaged.histogram_tlat

histogram_tla
  :: ForeignPtr Tensor
  -> Int64
  -> ForeignPtr (StdVector CDouble)
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
histogram_tla = _cast3 Unmanaged.histogram_tla

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

histogram_t
  :: ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,Tensor)))
histogram_t = _cast1 Unmanaged.histogram_t

_histogramdd_bin_edges_tlatb
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr (StdVector CDouble)
  -> ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr TensorList)
_histogramdd_bin_edges_tlatb = _cast5 Unmanaged._histogramdd_bin_edges_tlatb

_histogramdd_bin_edges_tlat
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr (StdVector CDouble)
  -> ForeignPtr Tensor
  -> IO (ForeignPtr TensorList)
_histogramdd_bin_edges_tlat = _cast4 Unmanaged._histogramdd_bin_edges_tlat

_histogramdd_bin_edges_tla
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr (StdVector CDouble)
  -> IO (ForeignPtr TensorList)
_histogramdd_bin_edges_tla = _cast3 Unmanaged._histogramdd_bin_edges_tla

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

_histogramdd_from_bin_cts_tlatb
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr (StdVector CDouble)
  -> ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr Tensor)
_histogramdd_from_bin_cts_tlatb = _cast5 Unmanaged._histogramdd_from_bin_cts_tlatb

_histogramdd_from_bin_cts_tlat
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr (StdVector CDouble)
  -> ForeignPtr Tensor
  -> IO (ForeignPtr Tensor)
_histogramdd_from_bin_cts_tlat = _cast4 Unmanaged._histogramdd_from_bin_cts_tlat

_histogramdd_from_bin_cts_tla
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr (StdVector CDouble)
  -> IO (ForeignPtr Tensor)
_histogramdd_from_bin_cts_tla = _cast3 Unmanaged._histogramdd_from_bin_cts_tla

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

_histogramdd_from_bin_tensors_tltb
  :: ForeignPtr Tensor
  -> ForeignPtr TensorList
  -> ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr Tensor)
_histogramdd_from_bin_tensors_tltb = _cast4 Unmanaged._histogramdd_from_bin_tensors_tltb

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

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

histogramdd_tlatb
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr (StdVector CDouble)
  -> ForeignPtr Tensor
  -> CBool
  -> IO (ForeignPtr (StdTuple '(Tensor,TensorList)))
histogramdd_tlatb = _cast5 Unmanaged.histogramdd_tlatb

histogramdd_tlat
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr (StdVector CDouble)
  -> ForeignPtr Tensor
  -> IO (ForeignPtr (StdTuple '(Tensor,TensorList)))
histogramdd_tlat = _cast4 Unmanaged.histogramdd_tlat

histogramdd_tla
  :: ForeignPtr Tensor
  -> ForeignPtr IntArray
  -> ForeignPtr (StdVector CDouble)
  -> IO (ForeignPtr (StdTuple '(Tensor,TensorList)))
histogramdd_tla = _cast3 Unmanaged.histogramdd_tla

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

quantile_out_tttlbs
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> CBool
  -> ForeignPtr StdString
  -> IO (ForeignPtr Tensor)
quantile_out_tttlbs = _cast6 Unmanaged.quantile_out_tttlbs

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

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

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

quantile_tdlbs
  :: ForeignPtr Tensor
  -> CDouble
  -> Int64
  -> CBool
  -> ForeignPtr StdString
  -> IO (ForeignPtr Tensor)
quantile_tdlbs = _cast5 Unmanaged.quantile_tdlbs

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

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

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

quantile_out_ttdlbs
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CDouble
  -> Int64
  -> CBool
  -> ForeignPtr StdString
  -> IO (ForeignPtr Tensor)
quantile_out_ttdlbs = _cast6 Unmanaged.quantile_out_ttdlbs

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

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

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

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

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

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

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

nanquantile_out_tttlbs
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> Int64
  -> CBool
  -> ForeignPtr StdString
  -> IO (ForeignPtr Tensor)
nanquantile_out_tttlbs = _cast6 Unmanaged.nanquantile_out_tttlbs

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

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

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

nanquantile_tdlbs
  :: ForeignPtr Tensor
  -> CDouble
  -> Int64
  -> CBool
  -> ForeignPtr StdString
  -> IO (ForeignPtr Tensor)
nanquantile_tdlbs = _cast5 Unmanaged.nanquantile_tdlbs

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

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

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

nanquantile_out_ttdlbs
  :: ForeignPtr Tensor
  -> ForeignPtr Tensor
  -> CDouble
  -> Int64
  -> CBool
  -> ForeignPtr StdString
  -> IO (ForeignPtr Tensor)
nanquantile_out_ttdlbs = _cast6 Unmanaged.nanquantile_out_ttdlbs

