Changeset d92ff4a
 Timestamp:
 Jul 31, 2018, 8:32:23 AM (3 years ago)
 Branches:
 aaronthesis, armeh, cleanupdtors, deferred_resn, demangler, jacob/cs343translation, jenkinssandbox, master, newast, newastuniqueexpr, no_list, persistentindexer
 Children:
 4137e31
 Parents:
 dccad9f
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

doc/user/user.tex
rdccad9f rd92ff4a 11 11 %% Created On : Wed Apr 6 14:53:29 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Mon Jul 9 10:49:52201814 %% Update Count : 336 113 %% Last Modified On : Thu Jul 26 17:29:05 2018 14 %% Update Count : 3366 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 … … 5967 5967 void * memalign( size_t align, size_t size );§\indexc{memalign}§ 5968 5968 int posix_memalign( void ** ptr, size_t align, size_t size );§\indexc{posix_memalign}§ 5969 }5970 5971 // §\CFA§ safe equivalents, i.e., implicit size specification5972 forall( dtype T  sized(T) ) T * malloc( void );5973 forall( dtype T  sized(T) ) T * calloc( size_t dim );5974 forall( dtype T  sized(T) ) T * realloc( T * ptr, size_t size );5975 forall( dtype T  sized(T) ) T * memalign( size_t align );5976 forall( dtype T  sized(T) ) T * aligned_alloc( size_t align );5977 forall( dtype T  sized(T) ) int posix_memalign( T ** ptr, size_t align );5978 5979 // §\CFA§ safe general allocation, fill, resize, array5980 forall( dtype T  sized(T) ) T * alloc( void );§\indexc{alloc}§5981 forall( dtype T  sized(T) ) T * alloc( char fill );5982 forall( dtype T  sized(T) ) T * alloc( size_t dim );5983 forall( dtype T  sized(T) ) T * alloc( size_t dim, char fill );5984 forall( dtype T  sized(T) ) T * alloc( T ptr[], size_t dim );5985 forall( dtype T  sized(T) ) T * alloc( T ptr[], size_t dim, char fill );5986 5987 // §\CFA§ safe general allocation, align, fill, array5988 forall( dtype T  sized(T) ) T * align_alloc( size_t align );5989 forall( dtype T  sized(T) ) T * align_alloc( size_t align, char fill );5990 forall( dtype T  sized(T) ) T * align_alloc( size_t align, size_t dim );5991 forall( dtype T  sized(T) ) T * align_alloc( size_t align, size_t dim, char fill );5992 5969 5993 5970 // C unsafe initialization/copy 5994 extern "C" {5995 5971 void * memset( void * dest, int c, size_t size ); 5996 5972 void * memcpy( void * dest, const void * src, size_t size ); 5997 5973 } 5998 5974 5975 forall( dtype T  sized(T) ) { 5976 // §\CFA§ safe equivalents, i.e., implicit size specification 5977 T * malloc( void ); 5978 T * calloc( size_t dim ); 5979 T * realloc( T * ptr, size_t size ); 5980 T * memalign( size_t align ); 5981 T * aligned_alloc( size_t align ); 5982 int posix_memalign( T ** ptr, size_t align ); 5983 5984 // §\CFA§ safe general allocation, fill, resize, array 5985 T * alloc( void );§\indexc{alloc}§ 5986 T * alloc( char fill ); 5987 T * alloc( size_t dim ); 5988 T * alloc( size_t dim, char fill ); 5989 T * alloc( T ptr[], size_t dim ); 5990 T * alloc( T ptr[], size_t dim, char fill ); 5991 5992 // §\CFA§ safe general allocation, align, fill, array 5993 T * align_alloc( size_t align ); 5994 T * align_alloc( size_t align, char fill ); 5995 T * align_alloc( size_t align, size_t dim ); 5996 T * align_alloc( size_t align, size_t dim, char fill ); 5997 5999 5998 // §\CFA§ safe initialization/copy, i.e., implicit size specification 6000 forall( dtype T  sized(T) )T * memset( T * dest, char c );§\indexc{memset}§6001 forall( dtype T  sized(T) )T * memcpy( T * dest, const T * src );§\indexc{memcpy}§5999 T * memset( T * dest, char c );§\indexc{memset}§ 6000 T * memcpy( T * dest, const T * src );§\indexc{memcpy}§ 6002 6001 6003 6002 // §\CFA§ safe initialization/copy array 6004 forall( dtype T  sized(T) ) T * memset( T dest[], size_t dim, char c ); 6005 forall( dtype T  sized(T) ) T * memcpy( T dest[], const T src[], size_t dim ); 6003 T * amemset( T dest[], char c, size_t dim ); 6004 T * amemcpy( T dest[], const T src[], size_t dim ); 6005 } 6006 6006 6007 6007 // §\CFA§ allocation/deallocation and constructor/destructor … … 6063 6063 forall( otype T  { int ?<?( T, T ); } ) 6064 6064 void qsort( const T * arr, size_t dim );§\indexc{qsort}§ 6065 6066 forall( otype E  { int ?<?( E, E ); } ) { 6067 E * bsearch( E key, const E * vals, size_t dim );§\indexc{bsearch}§ §\C{// location}§ 6068 size_t bsearch( E key, const E * vals, size_t dim );§\C{// position}§ 6069 E * bsearchl( E key, const E * vals, size_t dim );§\indexc{bsearchl}§ 6070 size_t bsearchl( E key, const E * vals, size_t dim ); 6071 E * bsearchu( E key, const E * vals, size_t dim );§\indexc{bsearchu}§ 6072 size_t bsearchu( E key, const E * vals, size_t dim ); 6073 } 6074 6075 forall( otype K, otype E  { int ?<?( K, K ); K getKey( const E & ); } ) { 6076 E * bsearch( K key, const E * vals, size_t dim ); 6077 size_t bsearch( K key, const E * vals, size_t dim ); 6078 E * bsearchl( K key, const E * vals, size_t dim ); 6079 size_t bsearchl( K key, const E * vals, size_t dim ); 6080 E * bsearchu( K key, const E * vals, size_t dim ); 6081 size_t bsearchu( K key, const E * vals, size_t dim ); 6082 } 6083 6084 forall( otype E  { int ?<?( E, E ); } ) { 6085 void qsort( E * vals, size_t dim );§\indexc{qsort}§ 6086 } 6065 6087 \end{cfa} 6066 6088
Note: See TracChangeset
for help on using the changeset viewer.