c99 :: Platform
c99 = Platform {
    name = "c99",
    types =
        [ (MachineVector 1 (NumType Signed S8),     "int8_t")
        , (MachineVector 1 (NumType Signed S16),    "int16_t")
        , (MachineVector 1 (NumType Signed S32),    "int32_t")
        , (MachineVector 1 (NumType Signed S64),    "int64_t")
        , (MachineVector 1 (NumType Unsigned S8),   "uint8_t")
        , (MachineVector 1 (NumType Unsigned S16),  "uint16_t")
        , (MachineVector 1 (NumType Unsigned S32),  "uint32_t")
        , (MachineVector 1 (NumType Unsigned S64),  "uint64_t")
        , (MachineVector 1 BoolType,                "bool")
        , (MachineVector 1 FloatType,               "float")
        , (MachineVector 1 DoubleType,              "double")
        , (MachineVector 1 (ComplexType (MachineVector 1 FloatType)), "float complex")
        , (MachineVector 1 (ComplexType (MachineVector 1 DoubleType)),"double complex")
        ] ,
    values =
        [ (MachineVector 1 (ComplexType (MachineVector 1 FloatType)), \cx -> "(" ++ showRe cx ++ "+" ++ showIm cx ++ "i)")
        , (MachineVector 1 (ComplexType (MachineVector 1 DoubleType)), \cx -> "(" ++ showRe cx ++ "+" ++ showIm cx ++ "i)")
        , (MachineVector 1 BoolType, \b -> if boolValue b then "true" else "false")
        ] ,
    includes =
        [ "feldspar_c99.h"
        , "feldspar_array.h"
        , "feldspar_future.h"
        , "ivar.h"
        , "taskpool.h"
        , "<stdint.h>"
        , "<string.h>"
        , "<math.h>"
        , "<stdbool.h>"
        , "<complex.h>"],
    varFloating = True
}
c99 :: Platform
c99 = Platform {
    name = "c99",
    types =
        [ (MachineVector 1 (NumType Signed S8),     "int8_t")
        , (MachineVector 1 (NumType Signed S16),    "int16_t")
        , (MachineVector 1 (NumType Signed S32),    "int32_t")
        , (MachineVector 1 (NumType Signed S64),    "int64_t")
        , (MachineVector 1 (NumType Unsigned S8),   "uint8_t")
        , (MachineVector 1 (NumType Unsigned S16),  "uint16_t")
        , (MachineVector 1 (NumType Unsigned S32),  "uint32_t")
        , (MachineVector 1 (NumType Unsigned S64),  "uint64_t")
        , (MachineVector 1 BoolType,                "bool")
        , (MachineVector 1 FloatType,               "float")
        , (MachineVector 1 DoubleType,              "double")
        , (MachineVector 1 (ComplexType (MachineVector 1 FloatType)), "float complex")
        , (MachineVector 1 (ComplexType (MachineVector 1 DoubleType)),"double complex")
        ] ,
    values =
        [ (MachineVector 1 (ComplexType (MachineVector 1 FloatType)), \cx -> "(" ++ showRe cx ++ "+" ++ showIm cx ++ "i)")
        , (MachineVector 1 (ComplexType (MachineVector 1 DoubleType)), \cx -> "(" ++ showRe cx ++ "+" ++ showIm cx ++ "i)")
        , (MachineVector 1 BoolType, \b -> if boolValue b then "true" else "false")
        ] ,
    includes =
        [ "feldspar_c99.h"
        , "feldspar_array.h"
        , "feldspar_future.h"
        , "ivar.h"
        , "taskpool.h"
        , "<stdint.h>"
        , "<string.h>"
        , "<math.h>"
        , "<stdbool.h>"
        , "<complex.h>"],
    varFloating = True
}
c99 = Platform {
    name = "c99",
    types =
        [ (MachineVector 1 (NumType Signed S8),     "int8_t")
        , (MachineVector 1 (NumType Signed S16),    "int16_t")
        , (MachineVector 1 (NumType Signed S32),    "int32_t")
        , (MachineVector 1 (NumType Signed S64),    "int64_t")
        , (MachineVector 1 (NumType Unsigned S8),   "uint8_t")
        , (MachineVector 1 (NumType Unsigned S16),  "uint16_t")
        , (MachineVector 1 (NumType Unsigned S32),  "uint32_t")
        , (MachineVector 1 (NumType Unsigned S64),  "uint64_t")
        , (MachineVector 1 BoolType,                "bool")
        , (MachineVector 1 FloatType,               "float")
        , (MachineVector 1 DoubleType,              "double")
        , (MachineVector 1 (ComplexType (MachineVector 1 FloatType)), "float complex")
        , (MachineVector 1 (ComplexType (MachineVector 1 DoubleType)),"double complex")
        ] ,
    values =
        [ (MachineVector 1 (ComplexType (MachineVector 1 FloatType)), \cx -> "(" ++ showRe cx ++ "+" ++ showIm cx ++ "i)")
        , (MachineVector 1 (ComplexType (MachineVector 1 DoubleType)), \cx -> "(" ++ showRe cx ++ "+" ++ showIm cx ++ "i)")
        , (MachineVector 1 BoolType, \b -> if boolValue b then "true" else "false")
        ] ,
    includes =
        [ "feldspar_c99.h"
        , "feldspar_array.h"
        , "feldspar_future.h"
        , "ivar.h"
        , "taskpool.h"
        , "<stdint.h>"
        , "<string.h>"
        , "<math.h>"
        , "<stdbool.h>"
        , "<complex.h>"],
    varFloating = True
}