Changes between Version 4 and Version 5 of DataParallel/Vectorisation/TypeVectorisation


Ignore:
Timestamp:
May 28, 2007 6:48:37 AM (8 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DataParallel/Vectorisation/TypeVectorisation

    v4 v5  
    1616}}} 
    1717 
     18We need to represent functions whose argument and/or result type are unboxed different from functions over boxed types.  The reason is the non-standard kinding rule implemented in GHC for `(->)`, which allows that the two argument type variables are instantiated to unboxed values iff the application of `(->)` is saturated.  We can't defined a second type constructor with that property unless we extend the `TypeRep.Type` representation.  We also can't simply use a type synonym for a vectorised type function constructor, because we must be able to partially apply it. 
     19 
    1820=== Transformation rules === 
    1921 
     
    2628              = T    , otherwise 
    2729a*            = a_v 
    28 (t1 -> t2)*   = t1* ->> t2* 
     30(t1 -> t2)*   = (t1* -> t2*) :*:  , if kindOf t1 == # 
     31                (t1^ -> t2^)        or kindOf t2 == # 
     32              = t1 ?? 
    2933(t1 t2)*      = t1* t2* 
    3034(forall a.t)* = forall a_v.t*