Skip to content

Commit

Permalink
Fix Semigroup instance for Exp Maybe
Browse files Browse the repository at this point in the history
Fixes #517
  • Loading branch information
tomsmeding committed Apr 14, 2023
1 parent ea6ed75 commit dbc3b3b
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 1 deletion.
1 change: 1 addition & 0 deletions accelerate.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -543,6 +543,7 @@ library
Data.Array.Accelerate.Test.NoFib.Issues.Issue436
Data.Array.Accelerate.Test.NoFib.Issues.Issue437
Data.Array.Accelerate.Test.NoFib.Issues.Issue439
Data.Array.Accelerate.Test.NoFib.Issues.Issue517

else
cpp-options:
Expand Down
2 changes: 1 addition & 1 deletion src/Data/Array/Accelerate/Data/Maybe.hs
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ instance (Monoid (Exp a), Elt a) => Monoid (Exp (Maybe a)) where

instance (Semigroup (Exp a), Elt a) => Semigroup (Exp (Maybe a)) where
ma <> mb = cond (isNothing ma) mb
$ cond (isNothing mb) mb
$ cond (isNothing mb) ma
$ lift (Just (fromJust ma <> fromJust mb))

instance (Lift Exp a, Elt (Plain a)) => Lift Exp (Maybe a) where
Expand Down
3 changes: 3 additions & 0 deletions src/Data/Array/Accelerate/Test/NoFib/Issues.hs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ module Data.Array.Accelerate.Test.NoFib.Issues (
module Data.Array.Accelerate.Test.NoFib.Issues.Issue436,
module Data.Array.Accelerate.Test.NoFib.Issues.Issue437,
module Data.Array.Accelerate.Test.NoFib.Issues.Issue439,
module Data.Array.Accelerate.Test.NoFib.Issues.Issue517,

) where

Expand Down Expand Up @@ -67,6 +68,7 @@ import Data.Array.Accelerate.Test.NoFib.Issues.Issue427
import Data.Array.Accelerate.Test.NoFib.Issues.Issue436
import Data.Array.Accelerate.Test.NoFib.Issues.Issue437
import Data.Array.Accelerate.Test.NoFib.Issues.Issue439
import Data.Array.Accelerate.Test.NoFib.Issues.Issue517


test_issues :: RunN -> TestTree
Expand Down Expand Up @@ -96,5 +98,6 @@ test_issues runN =
, test_issue436 runN
, test_issue437 runN
, test_issue439 runN
, test_issue517 runN
]

45 changes: 45 additions & 0 deletions src/Data/Array/Accelerate/Test/NoFib/Issues/Issue517.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{-# LANGUAGE RankNTypes #-}
-- |
-- Module : Data.Array.Accelerate.Test.NoFib.Issues.Issue439
-- Copyright : [2009..2020] The Accelerate Team
-- License : BSD3
--
-- Maintainer : Trevor L. McDonell <trevor.mcdonell@gmail.com>
-- Stability : experimental
-- Portability : non-portable (GHC extensions)
--
-- https://github.com/AccelerateHS/accelerate/issues/517
--

module Data.Array.Accelerate.Test.NoFib.Issues.Issue517 (

test_issue517

) where

import Data.Array.Accelerate as A
import Data.Array.Accelerate.Data.Semigroup as A
import Data.Array.Accelerate.Test.NoFib.Base

import Test.Tasty
import Test.Tasty.HUnit


test_issue517 :: RunN -> TestTree
test_issue517 runN
= testCase "517"
$ e1 @=? runN t1

type Tup5 a = (a, a, a, a, a)

e1 :: Scalar (Tup5 (Maybe (Max Float)))
e1 = fromList Z [(Nothing, Just 2, Just 3, Just 5, Just 7)]

t1 :: Acc (Scalar (Tup5 (Maybe (Max Float))))
t1 = unit $
T5 (Nothing_ <> Nothing_)
(Nothing_ <> Just_ 2)
(Just_ 3 <> Nothing_)
(Just_ 4 <> Just_ 5)
(Just_ 7 <> Just_ 6)

0 comments on commit dbc3b3b

Please sign in to comment.