{-# OPTIONS_GHC -fno-cse #-}
module Torch.Indef.Dynamic.Tensor.Math.Pointwise
( cross
, sign_ , sign
, clamp_ , clamp
, cadd_ , cadd , (^+^)
, csub_ , csub , (^-^)
, cmul_ , cmul , (^*^) , square
, cdiv_ , cdiv , (^/^)
, cpow_ , cpow
, clshift_ , clshift
, crshift_ , crshift
, cfmod_ , cfmod
, cremainder_ , cremainder
, cmax_ , cmax
, cmin_ , cmin
, cmaxValue_ , cmaxValue
, cminValue_ , cminValue
, cbitand_ , cbitand
, cbitor_ , cbitor
, cbitxor_ , cbitxor
, addcmul_ , addcmul
, addcdiv_ , addcdiv
) where
import System.IO.Unsafe
import Debug.Trace
import Torch.Indef.Types
import Torch.Indef.Dynamic.Tensor
import qualified Torch.Sig.Tensor.Math.Pointwise as Sig
sign_ :: Dynamic -> IO ()
sign_ a = _sign a a
sign :: Dynamic -> Dynamic
sign t = unsafeDupablePerformIO $ do
let r = empty
_sign r t
pure r
{-# NOINLINE sign #-}
cross
:: Dynamic
-> Dynamic
-> Word
-> Dynamic
cross a b di = unsafeDupablePerformIO $ do
let r = empty
_cross r a b di
pure r
{-# NOINLINE cross #-}
clamp_ :: Dynamic -> HsReal -> HsReal -> IO ()
clamp_ t a b = _clamp t t a b
clamp :: Dynamic -> HsReal -> HsReal -> Dynamic
clamp t a b = unsafeDupablePerformIO $ do
let r = new' (getSomeDims t)
_clamp r t a b
pure r
{-# NOINLINE clamp #-}
cadd_
:: Dynamic
-> HsReal
-> Dynamic
-> IO ()
cadd_ t v b = _cadd t t v b
cadd
:: Dynamic
-> HsReal
-> Dynamic
-> Dynamic
cadd t v b = unsafeDupablePerformIO $ do
let r = new' (getSomeDims t)
_cadd r t v b
pure r
{-# NOINLINE cadd #-}
(^+^) :: Dynamic -> Dynamic -> Dynamic
(^+^) a b = cadd a 1 b
csub_
:: Dynamic
-> HsReal
-> Dynamic
-> IO ()
csub_ t v b = _csub t t v b
csub
:: Dynamic
-> HsReal
-> Dynamic
-> Dynamic
csub t v b = unsafeDupablePerformIO $ do
let r = new' (getSomeDims t)
_csub r t v b
pure r
{-# NOINLINE csub #-}
(^-^) :: Dynamic -> Dynamic -> Dynamic
(^-^) a b = csub a 1 b
cmul_
:: Dynamic
-> Dynamic
-> IO ()
cmul_ t1 t2 = _cmul t1 t1 t2
cmul
:: Dynamic
-> Dynamic
-> Dynamic
cmul t1 t2 = unsafeDupablePerformIO $ do
let r = new' (getSomeDims t1)
_cmul r t1 t2
pure r
{-# NOINLINE cmul #-}
square :: Dynamic -> Dynamic
square t = cmul t t
(^*^) :: Dynamic -> Dynamic -> Dynamic
(^*^) = cmul
cdiv_
:: Dynamic
-> Dynamic
-> IO ()
cdiv_ t1 t2 = _cdiv t1 t1 t2
cdiv
:: Dynamic
-> Dynamic
-> Dynamic
cdiv t1 t2 = unsafeDupablePerformIO $ do
let r = new' (getSomeDims t1)
_cdiv r t1 t2
pure r
{-# NOINLINE cdiv #-}
(^/^) :: Dynamic -> Dynamic -> Dynamic
(^/^) = cdiv
cpow_
:: Dynamic
-> Dynamic
-> IO ()
cpow_ t = _cpow t t
cpow
:: Dynamic
-> Dynamic
-> Dynamic
cpow = _mkNewFunction _cpow
clshift_ :: Dynamic -> Dynamic -> IO ()
clshift_ t = _clshift t t
clshift :: Dynamic -> Dynamic -> Dynamic
clshift = _mkNewFunction _clshift
crshift_ :: Dynamic -> Dynamic -> IO ()
crshift_ t = _crshift t t
crshift :: Dynamic -> Dynamic -> Dynamic
crshift = _mkNewFunction _crshift
cfmod_
:: Dynamic
-> Dynamic
-> IO ()
cfmod_ t = _cfmod t t
cfmod
:: Dynamic
-> Dynamic
-> Dynamic
cfmod = _mkNewFunction _cfmod
cremainder_
:: Dynamic
-> Dynamic
-> IO ()
cremainder_ t = _cremainder t t
cremainder
:: Dynamic
-> Dynamic
-> Dynamic
cremainder = _mkNewFunction _cremainder
cmax_ :: Dynamic -> Dynamic -> IO ()
cmax_ t = _cmax t t
cmax :: Dynamic -> Dynamic -> Dynamic
cmax = _mkNewFunction _cmax
cmin_ :: Dynamic -> Dynamic -> IO ()
cmin_ t = _cmin t t
cmin :: Dynamic -> Dynamic -> Dynamic
cmin = _mkNewFunction _cmin
cmaxValue_ :: Dynamic -> HsReal -> IO ()
cmaxValue_ t v = _cmaxValue t t v
cmaxValue :: Dynamic -> HsReal -> Dynamic
cmaxValue t v = unsafeDupablePerformIO $ do
let r = empty
_cmaxValue r t v
pure r
{-# NOINLINE cmaxValue #-}
cminValue_ :: Dynamic -> HsReal -> IO ()
cminValue_ t v = _cminValue t t v
cminValue :: Dynamic -> HsReal -> Dynamic
cminValue t v = unsafeDupablePerformIO $ do
let r = empty
_cminValue r t v
pure r
{-# NOINLINE cminValue #-}
cbitand_ :: Dynamic -> Dynamic -> IO ()
cbitand_ t = _cbitand t t
cbitand :: Dynamic -> Dynamic -> Dynamic
cbitand = _mkNewFunction _cbitand
cbitor_ :: Dynamic -> Dynamic -> IO ()
cbitor_ t = _cbitor t t
cbitor :: Dynamic -> Dynamic -> Dynamic
cbitor = _mkNewFunction _cbitor
cbitxor_ :: Dynamic -> Dynamic -> IO ()
cbitxor_ t = _cbitxor t t
cbitxor :: Dynamic -> Dynamic -> Dynamic
cbitxor = _mkNewFunction _cbitxor
addcmul_
:: Dynamic
-> HsReal
-> Dynamic
-> Dynamic
-> IO ()
addcmul_ a v b c = _addcmul a a v b c
addcmul
:: Dynamic
-> HsReal
-> Dynamic
-> Dynamic
-> Dynamic
addcmul a v b c = unsafeDupablePerformIO $ do
let r = empty
_addcmul r a v b c
pure r
{-# NOINLINE addcmul #-}
addcdiv_
:: Dynamic
-> HsReal
-> Dynamic
-> Dynamic
-> IO ()
addcdiv_ a = _addcdiv a a
addcdiv
:: Dynamic
-> HsReal
-> Dynamic
-> Dynamic
-> Dynamic
addcdiv a v b c = unsafeDupablePerformIO $ do
let r = empty
_addcdiv r a v b c
pure r
{-# NOINLINE addcdiv #-}
_sign :: Dynamic -> Dynamic -> IO ()
_sign r t = withLift $ Sig.c_sign
<$> managedState
<*> managedTensor r
<*> managedTensor t
_cross :: Dynamic -> Dynamic -> Dynamic -> Word -> IO ()
_cross t0 t1 t2 i0 = withLift $ Sig.c_cross
<$> managedState
<*> managedTensor t0
<*> managedTensor t1
<*> managedTensor t2
<*> pure (fromIntegral i0)
_clamp :: Dynamic -> Dynamic -> HsReal -> HsReal -> IO ()
_clamp r t v0 v1 = withLift $ Sig.c_clamp
<$> managedState
<*> managedTensor r
<*> managedTensor t
<*> pure (hs2cReal v0)
<*> pure (hs2cReal v1)
_cmax :: Dynamic -> Dynamic -> Dynamic -> IO ()
_cmax r t0 t1 = withLift $ Sig.c_cmax
<$> managedState
<*> managedTensor r
<*> managedTensor t0
<*> managedTensor t1
_cmin :: Dynamic -> Dynamic -> Dynamic -> IO ()
_cmin r t0 t1 = withLift $ Sig.c_cmin
<$> managedState
<*> managedTensor r
<*> managedTensor t0
<*> managedTensor t1
_cmaxValue :: Dynamic -> Dynamic -> HsReal -> IO ()
_cmaxValue r t v = withLift $ Sig.c_cmaxValue
<$> managedState
<*> managedTensor r
<*> managedTensor t
<*> pure (hs2cReal v)
_cminValue :: Dynamic -> Dynamic -> HsReal -> IO ()
_cminValue r t v = withLift $ Sig.c_cminValue
<$> managedState
<*> managedTensor r
<*> managedTensor t
<*> pure (hs2cReal v)
_addcmul :: Dynamic -> Dynamic -> HsReal -> Dynamic -> Dynamic -> IO ()
_addcmul t0 t1 v t2 t3 = withLift $ Sig.c_addcmul
<$> managedState
<*> managedTensor t0
<*> managedTensor t1
<*> pure (hs2cReal v)
<*> managedTensor t2
<*> managedTensor t3
_addcdiv :: Dynamic -> Dynamic -> HsReal -> Dynamic -> Dynamic -> IO ()
_addcdiv t0 t1 v t2 t3 = withLift $ Sig.c_addcdiv
<$> managedState
<*> managedTensor t0
<*> managedTensor t1
<*> pure (hs2cReal v)
<*> managedTensor t2
<*> managedTensor t3
_cadd :: Dynamic -> Dynamic -> HsReal -> Dynamic -> IO ()
_cadd t0 t1 v t2 = withLift $ Sig.c_cadd
<$> managedState
<*> managedTensor t0
<*> managedTensor t1
<*> pure (hs2cReal v)
<*> managedTensor t2
_csub :: Dynamic -> Dynamic -> HsReal -> Dynamic -> IO ()
_csub t0 t1 v t2 = withLift $ Sig.c_csub
<$> managedState
<*> managedTensor t0
<*> managedTensor t1
<*> pure (hs2cReal v)
<*> managedTensor t2
_cmul :: Dynamic -> Dynamic -> Dynamic -> IO ()
_cmul r t0 t1 = withLift $ Sig.c_cmul
<$> managedState
<*> managedTensor r
<*> managedTensor t0
<*> managedTensor t1
_cpow :: Dynamic -> Dynamic -> Dynamic -> IO ()
_cpow r t0 t1 = withLift $ Sig.c_cpow
<$> managedState
<*> managedTensor r
<*> managedTensor t0
<*> managedTensor t1
_cdiv :: Dynamic -> Dynamic -> Dynamic -> IO ()
_cdiv r t0 t1 = withLift $ Sig.c_cdiv
<$> managedState
<*> managedTensor r
<*> managedTensor t0
<*> managedTensor t1
_clshift :: Dynamic -> Dynamic -> Dynamic -> IO ()
_clshift r t0 t1 = withLift $ Sig.c_clshift
<$> managedState
<*> managedTensor r
<*> managedTensor t0
<*> managedTensor t1
_crshift :: Dynamic -> Dynamic -> Dynamic -> IO ()
_crshift r t0 t1 = withLift $ Sig.c_crshift
<$> managedState
<*> managedTensor r
<*> managedTensor t0
<*> managedTensor t1
_cfmod :: Dynamic -> Dynamic -> Dynamic -> IO ()
_cfmod r t0 t1 = withLift $ Sig.c_cfmod
<$> managedState
<*> managedTensor r
<*> managedTensor t0
<*> managedTensor t1
_cremainder :: Dynamic -> Dynamic -> Dynamic -> IO ()
_cremainder r t0 t1 = withLift $ Sig.c_cremainder
<$> managedState
<*> managedTensor r
<*> managedTensor t0
<*> managedTensor t1
_cbitand :: Dynamic -> Dynamic -> Dynamic -> IO ()
_cbitand r t0 t1 = withLift $ Sig.c_cbitand
<$> managedState
<*> managedTensor r
<*> managedTensor t0
<*> managedTensor t1
_cbitor :: Dynamic -> Dynamic -> Dynamic -> IO ()
_cbitor r t0 t1 = withLift $ Sig.c_cbitor
<$> managedState
<*> managedTensor r
<*> managedTensor t0
<*> managedTensor t1
_cbitxor :: Dynamic -> Dynamic -> Dynamic -> IO ()
_cbitxor r t0 t1 = withLift $ Sig.c_cbitxor
<$> managedState
<*> managedTensor r
<*> managedTensor t0
<*> managedTensor t1
_mkNewFunction :: (Dynamic -> Dynamic -> Dynamic -> IO ()) -> Dynamic -> Dynamic -> Dynamic
_mkNewFunction op t1 t2 = unsafeDupablePerformIO $ do
let r = empty
op r t1 t2
pure r