Advertisement
Guest User

Untitled

a guest
Nov 1st, 2016
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.52 KB | None | 0 0
  1. type NDims2 () =
  2.     static member indexer (ind1:int) =
  3.         let m = 2 // case of matrix 2x2 %)
  4.         fun ind2 -> ind1 + 2*ind2
  5.        
  6. type NDArray<'t, 'ndims> =
  7.     {
  8.         data : 't array
  9.    }
  10.    
  11. let inline indexer (arr: NDArray<_, 'ndims>) ind1 =
  12.     (^ndims : (static member indexer : int -> ^rest) ind1)
  13.    
  14. let inline get (arr : NDArray<'t, 'ndims>) ind1 rest : 't =
  15.    let indexr = indexer arr ind1
  16.    arr.data.[indexr rest]
  17.    
  18. let mat : NDArray<_, NDims2> = { data = [|1;2;3;4|] }
  19. get mat 1 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement