carray-0.1.0.0: Data/Array/IOCArray.hs
-----------------------------------------------------------------------------
-- |
-- Module : Data.Array.IOCArray
-- Copyright : (c) 2008 Jed Brown
-- License : BSD-style
--
-- Maintainer : jed@59A2.org
-- Stability : experimental
-- Portability : non-portable
--
-- This module provides both the mutable 'IOCArray' which uses pinned memory on
-- the GC'd heap. Elements are stored according to the class 'Storable'. You
-- can obtain a pointer to the array contents to manipulate elements from
-- languages like C.
--
-- 'IOCArray' is 16-byte aligned by default. If you create a 'IOCArray' with
-- 'unsafeForeignPtrToIOCArray' then it may not be aligned. This will be an
-- issue if you intend to use SIMD instructions.
--
-- 'IOCArray' is equivalent to 'Data.Array.Storable.StorableArray' and similar
-- to 'Data.Array.IO.IOUArray' but slower. 'IOCArray' has O(1) versions of
-- 'unsafeFreeze' and 'unsafeThaw' when converting to/from 'CArray'.
-----------------------------------------------------------------------------
module Data.Array.IOCArray (
-- * IOCArray type
IOCArray,
-- * Foreign support
withIOCArray,
touchIOCArray,
unsafeForeignPtrToIOCArray,
-- * The overloaded mutable array interface
module Data.Array.MArray
) where
import Data.Array.CArray.Base
import Data.Array.MArray