diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/examplefiles/futhark/example.fut | 16 | ||||
-rw-r--r-- | tests/examplefiles/futhark/example.fut.output | 239 |
2 files changed, 255 insertions, 0 deletions
diff --git a/tests/examplefiles/futhark/example.fut b/tests/examplefiles/futhark/example.fut new file mode 100644 index 00000000..d2c7bfa8 --- /dev/null +++ b/tests/examplefiles/futhark/example.fut @@ -0,0 +1,16 @@ +module matmul (F: numeric) = { + type t = F.t + open F + + local let dotprod [n] (a: [n]t) (b: [n]t): t = + map2 (*) a b |> reduce (+) (i32 0) + + + let matmul [n1][n2][m] (xss: [n1][m]t) (yss: [m][n2]t): [n1][n2]t = + map (\xs -> map (\ys -> dotprod xs ys) <| transpose yss) xss +} + +module matmul32 = matmul f32 + +let main [n][m] (xss: [n][m]f32) (yss: [m][n]f32): *[n][n]f32 = + matmul32.matmul xss yss diff --git a/tests/examplefiles/futhark/example.fut.output b/tests/examplefiles/futhark/example.fut.output new file mode 100644 index 00000000..d1fe0afb --- /dev/null +++ b/tests/examplefiles/futhark/example.fut.output @@ -0,0 +1,239 @@ +'module' Keyword.Reserved +' ' Text.Whitespace +'matmul' Name +' ' Text.Whitespace +'(' Punctuation +'F' Name +':' Punctuation +' ' Text.Whitespace +'numeric' Name +')' Punctuation +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +'\n ' Text.Whitespace +'type' Keyword.Reserved +' ' Text.Whitespace +'t' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'F.t' Name +'\n ' Text.Whitespace +'open' Keyword.Reserved +' ' Text.Whitespace +'F' Name +'\n\n ' Text.Whitespace +'local' Keyword.Reserved +' ' Text.Whitespace +'let' Keyword.Reserved +' ' Text.Whitespace +'dotprod' Name +' ' Text.Whitespace +'[' Punctuation +'n' Name +']' Punctuation +' ' Text.Whitespace +'(' Punctuation +'a' Name +':' Punctuation +' ' Text.Whitespace +'[' Punctuation +'n' Name +']' Punctuation +'t' Name +')' Punctuation +' ' Text.Whitespace +'(' Punctuation +'b' Name +':' Punctuation +' ' Text.Whitespace +'[' Punctuation +'n' Name +']' Punctuation +'t' Name +')' Punctuation +':' Punctuation +' ' Text.Whitespace +'t' Name +' ' Text.Whitespace +'=' Operator +'\n ' Text.Whitespace +'map2' Name +' ' Text.Whitespace +'(' Punctuation +'*' Operator +')' Punctuation +' ' Text.Whitespace +'a' Name +' ' Text.Whitespace +'b' Name +' ' Text.Whitespace +'|>' Operator +' ' Text.Whitespace +'reduce' Name +' ' Text.Whitespace +'(' Punctuation +'+' Operator +')' Punctuation +' ' Text.Whitespace +'(' Punctuation +'i32' Keyword.Type +' ' Text.Whitespace +'0' Literal.Number.Integer +')' Punctuation +'\n\n\n ' Text.Whitespace +'let' Keyword.Reserved +' ' Text.Whitespace +'matmul' Name +' ' Text.Whitespace +'[' Punctuation +'n1' Name +']' Punctuation +'[' Punctuation +'n2' Name +']' Punctuation +'[' Punctuation +'m' Name +']' Punctuation +' ' Text.Whitespace +'(' Punctuation +'xss' Name +':' Punctuation +' ' Text.Whitespace +'[' Punctuation +'n1' Name +']' Punctuation +'[' Punctuation +'m' Name +']' Punctuation +'t' Name +')' Punctuation +' ' Text.Whitespace +'(' Punctuation +'yss' Name +':' Punctuation +' ' Text.Whitespace +'[' Punctuation +'m' Name +']' Punctuation +'[' Punctuation +'n2' Name +']' Punctuation +'t' Name +')' Punctuation +':' Punctuation +' ' Text.Whitespace +'[' Punctuation +'n1' Name +']' Punctuation +'[' Punctuation +'n2' Name +']' Punctuation +'t' Name +' ' Text.Whitespace +'=' Operator +'\n ' Text.Whitespace +'map' Name +' ' Text.Whitespace +'(' Punctuation +'\\' Operator +'xs' Name +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'map' Name +' ' Text.Whitespace +'(' Punctuation +'\\' Operator +'ys' Name +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'dotprod' Name +' ' Text.Whitespace +'xs' Name +' ' Text.Whitespace +'ys' Name +')' Punctuation +' ' Text.Whitespace +'<|' Operator +' ' Text.Whitespace +'transpose' Name +' ' Text.Whitespace +'yss' Name +')' Punctuation +' ' Text.Whitespace +'xss' Name +'\n' Text.Whitespace + +'}' Punctuation +'\n\n' Text.Whitespace + +'module' Keyword.Reserved +' ' Text.Whitespace +'matmul32' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'matmul' Name +' ' Text.Whitespace +'f32' Keyword.Type +'\n\n' Text.Whitespace + +'let' Keyword.Reserved +' ' Text.Whitespace +'main' Name +' ' Text.Whitespace +'[' Punctuation +'n' Name +']' Punctuation +'[' Punctuation +'m' Name +']' Punctuation +' ' Text.Whitespace +'(' Punctuation +'xss' Name +':' Punctuation +' ' Text.Whitespace +'[' Punctuation +'n' Name +']' Punctuation +'[' Punctuation +'m' Name +']' Punctuation +'f32' Keyword.Type +')' Punctuation +' ' Text.Whitespace +'(' Punctuation +'yss' Name +':' Punctuation +' ' Text.Whitespace +'[' Punctuation +'m' Name +']' Punctuation +'[' Punctuation +'n' Name +']' Punctuation +'f32' Keyword.Type +')' Punctuation +':' Punctuation +' ' Text.Whitespace +'*' Operator +'[' Punctuation +'n' Name +']' Punctuation +'[' Punctuation +'n' Name +']' Punctuation +'f32' Keyword.Type +' ' Text.Whitespace +'=' Operator +'\n ' Text.Whitespace +'matmul32.matmul' Name +' ' Text.Whitespace +'xss' Name +' ' Text.Whitespace +'yss' Name +'\n' Text.Whitespace |