packages feed

hasktorch-0.0.1.0: tests/RawLapackSVDSpec.hs

{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE DataKinds #-}
module RawLapackSVDSpec where

import Foreign.C.Types

import Numeric.Dimensions
import Torch.Float.Dynamic

import Torch.Prelude.Extras

main :: IO ()
main = hspec spec

spec :: Spec
spec = do
  it "scenario: pcaRaw" pcaRaw

pcaRaw :: IO ()
pcaRaw = do

  let a :: FloatDynamic = constant (dims :: Dims '[2, 2]) 2
  print a

  let b                 = constant (dims :: Dims '[2]) 1
  print b

  set2d_ a 0 0 1.0
  set2d_ a 0 1 2.0
  set2d_ a 1 0 3.0
  set2d_ a 1 0 4.0
  print a
  print b

  let resA = constant (dims :: Dims '[2, 2]) 0
  let resB = constant (dims :: Dims '[2, 2]) 0
  gesv_ (resB,resA) b a
  print resA
  print resB