source: src/prelude/prelude.cf @ 14f6bb39

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsdeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newwith_gc
Last change on this file since 14f6bb39 was 14f6bb39, checked in by Aaron Moss <a3moss@…>, 8 years ago

Add missing overloads of comparison operators on pointers

  • Property mode set to 100644
File size: 51.5 KB
Line 
1//                               -*- Mode: C -*-
2//
3// Copyright (C) Glen Ditchfield 1994, 1999
4//
5// prelude.cf -- Standard Cforall Preample for C99
6//
7// Author           : Glen Ditchfield
8// Created On       : Sat Nov 29 07:23:41 2014
9// Last Modified By : Peter A. Buhr
10// Last Modified On : Tue Jul  5 18:04:40 2016
11// Update Count     : 92
12//
13
14# 2 "prelude.cf"  // needed for error messages from this file
15
16// Section numbers from: http://plg.uwaterloo.ca/~cforall/refrat.pdf
17
18// ------------------------------------------------------------
19//
20// Section 4.1 Primary Expressions
21//
22// ------------------------------------------------------------
23
24//We have none
25
26// ------------------------------------------------------------
27//
28// Section 4.2 Postfix Operators
29//
30// ------------------------------------------------------------
31
32_Bool                   ?++( _Bool * ),                         ?++( volatile _Bool * );
33_Bool                   ?--( _Bool * ),                         ?--( volatile _Bool * );
34unsigned char           ?++( unsigned char * ),                 ?++( volatile unsigned char * );
35signed int              ?++( signed int * ),                    ?++( volatile signed int * );
36signed int              ?--( signed int * ),                    ?--( volatile signed int * );
37unsigned int            ?++( unsigned int * ),                  ?++( volatile unsigned int * );
38unsigned int            ?--( unsigned int * ),                  ?--( volatile unsigned int * );
39signed long int         ?++( signed long int * ),               ?++( volatile signed long int * );
40signed long int         ?--( signed long int * ),               ?--( volatile signed long int * );
41unsigned long int       ?++( unsigned long int * ),             ?++( volatile unsigned long int * );
42unsigned long int       ?--( unsigned long int * ),             ?--( volatile unsigned long int * );
43signed long long int    ?++( signed long long int * ),          ?++( volatile signed long long int * );
44signed long long int    ?--( signed long long int * ),          ?--( volatile signed long long int * );
45unsigned long long int  ?++( unsigned long long int * ),        ?++( volatile unsigned long long int * );
46unsigned long long int  ?--( unsigned long long int * ),        ?--( volatile unsigned long long int * );
47float                   ?++( float * ),                         ?++( volatile float * );
48float                   ?--( float * ),                         ?--( volatile float * );
49double                  ?++( double * ),                        ?++( volatile double * );
50double                  ?--( double * ),                        ?--( volatile double * );
51long double             ?++( long double * ),                   ?++( volatile long double * );
52long double             ?--( long double * ),                   ?--( volatile long double * );
53float _Complex          ?++( float _Complex * ),                ?++( volatile float _Complex * );
54float _Complex          ?--( float _Complex * ),                ?--( volatile float _Complex * );
55double _Complex         ?++( double _Complex * ),               ?++( volatile double _Complex * );
56double _Complex         ?--( double _Complex * ),               ?--( volatile double _Complex * );
57long double _Complex    ?++( long double _Complex * ),          ?++( volatile long double _Complex * );
58long double _Complex    ?--( long double _Complex * ),          ?--( volatile long double _Complex * );
59
60forall( dtype T | sized(T) ) T *                         ?++(                T ** );
61forall( dtype T | sized(T) ) const T *           ?++( const          T ** );
62forall( dtype T | sized(T) ) volatile T *                ?++(       volatile T ** );
63forall( dtype T | sized(T) ) const volatile T *  ?++( const volatile T ** );
64forall( dtype T | sized(T) ) T *                         ?--(                T ** );
65forall( dtype T | sized(T) ) const T *           ?--( const          T ** );
66forall( dtype T | sized(T) ) volatile T *                ?--(       volatile T ** );
67forall( dtype T | sized(T) ) const volatile T *  ?--( const volatile T ** );
68
69forall( dtype T | sized(T) ) lvalue T            ?[?](                T *,          ptrdiff_t );
70forall( dtype T | sized(T) ) const lvalue T      ?[?]( const          T *,          ptrdiff_t );
71forall( dtype T | sized(T) ) volatile lvalue T   ?[?](       volatile T *,          ptrdiff_t );
72forall( dtype T | sized(T) ) const volatile lvalue T ?[?]( const volatile T *,      ptrdiff_t );
73forall( dtype T | sized(T) ) lvalue T            ?[?](          ptrdiff_t,                T * );
74forall( dtype T | sized(T) ) const lvalue T      ?[?](          ptrdiff_t, const          T * );
75forall( dtype T | sized(T) ) volatile lvalue T   ?[?](          ptrdiff_t,       volatile T * );
76forall( dtype T | sized(T) ) const volatile lvalue T ?[?](              ptrdiff_t, const volatile T * );
77
78// ------------------------------------------------------------
79//
80// Section 4.3 Unary Operators
81//
82// ------------------------------------------------------------
83
84_Bool                   ++?( _Bool * ),                         --?( _Bool * );
85signed int              ++?( signed int * ),                    --?( signed int * );
86unsigned int            ++?( unsigned int * ),                  --?( unsigned int * );
87signed long int         ++?( signed long int * ),               --?( signed long int * );
88unsigned long int       ++?( unsigned long int * ),             --?( unsigned long int * );
89signed long long int    ++?( signed long long int * ),          --?( signed long long int * );
90unsigned long long int  ++?( unsigned long long int * ),        --?( unsigned long long int * );
91float                   ++?( float * ),                         --?( float * );
92double                  ++?( double * ),                        --?( double * );
93long double             ++?( long double * ),                   --?( long double * );
94float _Complex          ++?( float _Complex * ),                --?( float _Complex * );
95double _Complex         ++?( double _Complex * ),               --?( double _Complex * );
96long double _Complex    ++?( long double _Complex * ),          --?( long double _Complex * );
97
98forall( dtype T | sized(T) ) T *                         ++?(                T ** );
99forall( dtype T | sized(T) ) const T *           ++?( const          T ** );
100forall( dtype T | sized(T) ) volatile T *                ++?(       volatile T ** );
101forall( dtype T | sized(T) ) const volatile T *  ++?( const volatile T ** );
102forall( dtype T | sized(T) ) T *                         --?(                T ** );
103forall( dtype T | sized(T) ) const T *           --?( const          T ** );
104forall( dtype T | sized(T) ) volatile T *                --?(       volatile T ** );
105forall( dtype T | sized(T) ) const volatile T *  --?( const volatile T ** );
106
107forall( dtype T | sized(T) ) lvalue T            *?(                 T * );
108forall( dtype T | sized(T) ) const lvalue T              *?( const           T * );
109forall( dtype T | sized(T) ) volatile lvalue T   *?(       volatile  T * );
110forall( dtype T | sized(T) ) const volatile lvalue T *?( const volatile  T * );
111forall( ftype FT ) lvalue FT             *?( FT * );
112
113_Bool                   +?( _Bool ),                    -?( _Bool ),                    ~?( _Bool );
114signed int              +?( signed int ),               -?( signed int ),               ~?( signed int );
115unsigned int            +?( unsigned int ),             -?( unsigned int ),             ~?( unsigned int );
116signed long int         +?( signed long int ),          -?( signed long int ),          ~?( signed long int );
117unsigned long int       +?( unsigned long int ),        -?( unsigned long int ),        ~?( unsigned long int );
118signed long long int    +?( signed long long int ),     -?( signed long long int ),     ~?( signed long long int );
119unsigned long long int  +?( unsigned long long int ),   -?( unsigned long long int ),   ~?( unsigned long long int );
120float                   +?( float ),                    -?( float );
121double                  +?( double ),                   -?( double );
122long double             +?( long double ),              -?( long double );
123float _Complex          +?( float _Complex ),           -?( float _Complex );
124double _Complex         +?( double _Complex ),          -?( double _Complex );
125long double _Complex    +?( long double _Complex ),     -?( long double _Complex );
126
127signed int      !?( signed int ),               !?( unsigned int ),
128                !?( long int ),                 !?( unsigned long int ),
129                !?( long long int ),            !?( unsigned long long int ),
130                !?( float ),                    !?( double ),                   !?( long double ),
131                !?( float _Complex ),           !?( double _Complex ),          !?( long double _Complex );
132
133forall ( dtype DT ) int !?(                DT * );
134forall ( dtype DT ) int !?( const          DT * );
135forall ( dtype DT ) int !?(       volatile DT * );
136forall ( dtype DT ) int !?( const volatile DT * );
137forall ( ftype FT ) int !?( FT * );
138
139// ------------------------------------------------------------
140//
141// Section 4.5 Multiplicative Operators
142//
143// ------------------------------------------------------------
144
145_Bool                   ?*?( _Bool, _Bool ),                                    ?/?( _Bool, _Bool ),                            ?%?( _Bool, _Bool );
146signed int              ?*?( signed int, signed int ),                          ?/?( signed int, signed int ),                  ?%?( signed int, signed int );
147unsigned int            ?*?( unsigned int, unsigned int ),                      ?/?( unsigned int, unsigned int ),              ?%?( unsigned int, unsigned int );
148signed long int         ?*?( signed long int, signed long int ),                ?/?( signed long int, signed long int ),        ?%?( signed long int, signed long int );
149unsigned long int       ?*?( unsigned long int, unsigned long int ),            ?/?( unsigned long int, unsigned long int ),    ?%?( unsigned long int, unsigned long int );
150signed long long int    ?*?( signed long long int, signed long long int ),      ?/?( signed long long int, signed long long int ), ?%?( signed long long int, signed long long int );
151unsigned long long int  ?*?( unsigned long long int, unsigned long long int ),  ?/?( unsigned long long int, unsigned long long int ), ?%?( unsigned long long int, unsigned long long int );
152float                   ?*?( float, float ),                                    ?/?( float, float );
153double                  ?*?( double, double ),                                  ?/?( double, double );
154long double             ?*?( long double, long double ),                        ?/?( long double, long double );
155// gcc does not support _Imaginary
156//float _Imaginary      ?*?( float _Imaginary, float _Imaginary),               ?/?( float _Imaginary, float _Imaginary );
157//double _Imaginary     ?*?( double _Imaginary, double _Imaginary),             ?/?( double _Imaginary, double _Imaginary );
158//long double _Imaginary        ?*?( long double _Imaginary, long double _Imaginary),   ?/?( long double _Imaginary, long double _Imaginary );
159float _Complex          ?*?( float _Complex, float _Complex ),                  ?/?( float _Complex, float _Complex );
160double _Complex         ?*?( double _Complex, double _Complex ),                ?/?( double _Complex, double _Complex );
161long double _Complex    ?*?( long double _Complex, long double _Complex ),      ?/?( long double _Complex, long double _Complex );
162
163// ------------------------------------------------------------
164//
165// Section 4.6 Additive Operators
166//
167// ------------------------------------------------------------
168
169_Bool                   ?+?( _Bool, _Bool ),                                    ?-?( _Bool, _Bool );
170signed int              ?+?( signed int, signed int ),                          ?-?( signed int, signed int );
171unsigned int            ?+?( unsigned int, unsigned int ),                      ?-?( unsigned int, unsigned int );
172signed long int         ?+?( signed long int, signed long int ),                ?-?( signed long int, signed long int );
173unsigned long int       ?+?( unsigned long int, unsigned long int ),            ?-?( unsigned long int, unsigned long int );
174signed long long int    ?+?( signed long long int, long long int  signed),      ?-?( signed long long int, signed long long int );
175unsigned long long int  ?+?( unsigned long long int, unsigned long long int ),  ?-?( unsigned long long int, unsigned long long int );
176float                   ?+?( float, float ),                                    ?-?( float, float );
177double                  ?+?( double, double ),                                  ?-?( double, double );
178long double             ?+?( long double, long double ),                        ?-?( long double, long double );
179float _Complex          ?+?( float _Complex, float _Complex ),                  ?-?( float _Complex, float _Complex );
180double _Complex         ?+?( double _Complex, double _Complex ),                ?-?( double _Complex, double _Complex );
181long double _Complex    ?+?( long double _Complex, long double _Complex ),      ?-?( long double _Complex, long double _Complex );
182
183forall( dtype T | sized(T) ) T *                        ?+?(                T *,          ptrdiff_t );
184forall( dtype T | sized(T) ) T *                        ?+?(          ptrdiff_t,                T * );
185forall( dtype T | sized(T) ) const T *          ?+?( const          T *,          ptrdiff_t );
186forall( dtype T | sized(T) ) const T *          ?+?(          ptrdiff_t, const          T * );
187forall( dtype T | sized(T) ) volatile T *               ?+?(       volatile T *,          ptrdiff_t );
188forall( dtype T | sized(T) ) volatile T *               ?+?(          ptrdiff_t,       volatile T * );
189forall( dtype T | sized(T) ) const volatile T * ?+?( const volatile T *,          ptrdiff_t );
190forall( dtype T | sized(T) ) const volatile T * ?+?(          ptrdiff_t, const volatile T * );
191forall( dtype T | sized(T) ) T *                        ?-?(                T *,          ptrdiff_t );
192forall( dtype T | sized(T) ) const T *          ?-?( const          T *,          ptrdiff_t );
193forall( dtype T | sized(T) ) volatile T *               ?-?(       volatile T *,          ptrdiff_t );
194forall( dtype T | sized(T) ) const volatile T * ?-?( const volatile T *,          ptrdiff_t );
195forall( dtype T | sized(T) ) ptrdiff_t          ?-?( const volatile T *, const volatile T * );
196
197// ------------------------------------------------------------
198//
199// Section 4.7 Bitwise Shift Operators
200//
201// ------------------------------------------------------------
202
203_Bool                   ?<<?( _Bool, _Bool ),                                   ?>>?( _Bool, _Bool );
204signed int              ?<<?( signed int, signed int ),                         ?>>?( signed int, signed int );
205unsigned int            ?<<?( unsigned int, unsigned int ),                     ?>>?( unsigned int, unsigned int );
206signed long int         ?<<?( signed long int, signed long int ),               ?>>?( signed long int, signed long int );
207unsigned long int       ?<<?( unsigned long int, unsigned long int ),           ?>>?( unsigned long int, unsigned long int );
208signed long long int    ?<<?( signed long long int, signed long long int ),     ?>>?( signed long long int, signed long long int );
209unsigned long long int  ?<<?( unsigned long long int, unsigned long long int ), ?>>?( unsigned long long int, unsigned long long int );
210
211// ------------------------------------------------------------
212//
213// Section 4.8 Relational Operators
214//
215// ------------------------------------------------------------
216
217signed int ?<?( _Bool, _Bool ),                                         ?<=?( _Bool, _Bool ),
218           ?>?( _Bool, _Bool ),                                         ?>=?( _Bool, _Bool );
219signed int ?<?( unsigned char, unsigned char ),                         ?<=?( unsigned char, unsigned char ),
220           ?>?( unsigned char, unsigned char ),                         ?>=?( unsigned char, unsigned char );
221signed int ?<?( signed int, signed int ),                               ?<=?( signed int, signed int ),
222           ?>?( signed int, signed int ),                               ?>=?( signed int, signed int );
223signed int ?<?( unsigned int, unsigned int ),                           ?<=?( unsigned int, unsigned int ),
224           ?>?( unsigned int, unsigned int ),                           ?>=?( unsigned int, unsigned int );
225signed int ?<?( signed long int, signed long int ),                     ?<=?( signed long int, signed long int ),
226           ?>?( signed long int, signed long int ),                     ?>=?( signed long int, signed long int );
227signed int ?<?( unsigned long int, unsigned long int ),                 ?<=?( unsigned long int, unsigned long int ),
228           ?>?( unsigned long int, unsigned long int ),                 ?>=?( unsigned long int, unsigned long int );
229signed int ?<?( signed long long int, signed long long int ),           ?<=?( signed long long int, signed long long int ),
230           ?>?( signed long long int, signed long long int ),           ?>=?( signed long long int, signed long long int );
231signed int ?<?( unsigned long long int, unsigned long long int ),       ?<=?( unsigned long long int, unsigned long long int ),
232           ?>?( unsigned long long int, unsigned long long int ),       ?>=?( unsigned long long int, unsigned long long int );
233signed int ?<?( float, float ),                                         ?<=?( float, float ),
234           ?>?( float, float ),                                         ?>=?( float, float );
235signed int ?<?( double, double ),                                       ?<=?( double, double ),
236           ?>?( double, double ),                                       ?>=?( double, double );
237signed int ?<?( long double, long double ),                             ?<=?( long double, long double ),
238           ?>?( long double, long double ),                             ?>=?( long double, long double );
239
240forall( dtype DT ) signed int ?<?(                 DT *,                DT * );
241forall( dtype DT ) signed int ?<?(  const          DT *, const          DT * );
242forall( dtype DT ) signed int ?<?(        volatile DT *,       volatile DT * );
243forall( dtype DT ) signed int ?<?(  const volatile DT *, const volatile DT * );
244
245forall( dtype DT ) signed int ?>?(                 DT *,                DT * );
246forall( dtype DT ) signed int ?>?(  const          DT *, const          DT * );
247forall( dtype DT ) signed int ?>?(        volatile DT *,       volatile DT * );
248forall( dtype DT ) signed int ?>?(  const volatile DT *, const volatile DT * );
249
250forall( dtype DT ) signed int ?<=?(                 DT *,                DT * );
251forall( dtype DT ) signed int ?<=?(  const          DT *, const          DT * );
252forall( dtype DT ) signed int ?<=?(        volatile DT *,       volatile DT * );
253forall( dtype DT ) signed int ?<=?( const volatile DT *, const volatile DT * );
254
255forall( dtype DT ) signed int ?>=?(                 DT *,                DT * );
256forall( dtype DT ) signed int ?>=?(  const          DT *, const          DT * );
257forall( dtype DT ) signed int ?>=?(        volatile DT *,       volatile DT * );
258forall( dtype DT ) signed int ?>=?( const volatile DT *, const volatile DT * );
259
260// ------------------------------------------------------------
261//
262// Section 4.9 Equality Operators
263//
264// ------------------------------------------------------------
265
266signed int ?==?( _Bool, _Bool ),                                                        ?!=?( _Bool, _Bool );
267signed int ?==?( signed int, signed int ),                                      ?!=?( signed int, signed int );
268signed int ?==?( unsigned int, unsigned int ),                                  ?!=?( unsigned int, unsigned int );
269signed int ?==?( signed long int, signed long int ),                            ?!=?( signed long int, signed long int );
270signed int ?==?( unsigned long int, unsigned long int ),                        ?!=?( unsigned long int, unsigned long int );
271signed int ?==?( signed long long int, long long int  signed),          ?!=?( signed long long int, signed long long int );
272signed int ?==?( unsigned long long int, unsigned long long int ),      ?!=?( unsigned long long int, unsigned long long int );
273signed int ?==?( float, float ),                                                        ?!=?( float, float );
274signed int ?==?( double, double ),                                                      ?!=?( double, double );
275signed int ?==?( long double, long double ),                                    ?!=?( long double, long double );
276signed int ?==?( float _Complex, float _Complex ),                              ?!=?( float _Complex, float _Complex );
277signed int ?==?( double _Complex, double _Complex ),                            ?!=?( double _Complex, double _Complex );
278signed int ?==?( long double _Complex, long double _Complex ),          ?!=?( long double _Complex, long double _Complex );
279signed int ?==?( zero_t, zero_t ),                                                      ?!=?( zero_t, zero_t );
280signed int ?==?( one_t, one_t ),                                                        ?!=?( one_t, one_t );
281
282forall( dtype DT ) signed int ?==?(                DT *,                DT * );
283forall( dtype DT ) signed int ?==?( const          DT *, const          DT * );
284forall( dtype DT ) signed int ?==?(       volatile DT *,       volatile DT * );
285forall( dtype DT ) signed int ?==?( const volatile DT *, const volatile DT * );
286forall( ftype FT ) signed int ?==?( FT *, FT * );
287forall( dtype DT ) signed int ?!=?(                DT *,                DT * );
288forall( dtype DT ) signed int ?!=?( const          DT *, const          DT * );
289forall( dtype DT ) signed int ?!=?(       volatile DT *,       volatile DT * );
290forall( dtype DT ) signed int ?!=?( const volatile DT *, const volatile DT * );
291forall( ftype FT ) signed int ?!=?( FT *, FT * );
292
293// forall( dtype DT ) signed int ?==?( const volatile DT   *, const volatile void * );
294// forall( dtype DT ) signed int ?==?( const volatile void *, const volatile DT * );
295// forall( dtype DT ) signed int ?!=?( const volatile DT   *, const volatile void * );
296// forall( dtype DT ) signed int ?!=?( const volatile void *, const volatile DT * );
297
298// forall( dtype DT ) signed int ?==?( const volatile DT *, forall( dtype DT2 )const DT2 * );
299// forall( dtype DT ) signed int ?==?( forall( dtype DT2 )const DT2 *, const volatile DT * );
300// forall( ftype FT ) signed int ?==?( FT *, forall( ftype FT2 )FT2 * );
301// forall( ftype FT ) signed int ?==?( forall( ftype FT2 )FT2 *, FT * );
302// forall( dtype DT ) signed int ?!=?( const volatile DT *, forall( dtype DT2 )const DT2 * );
303// forall( dtype DT ) signed int ?!=?( forall( dtype DT2 )const DT2 *, const volatile DT * );
304// forall( ftype FT ) signed int ?!=?( FT *, forall( ftype FT2 )FT2 * );
305// forall( ftype FT ) signed int ?!=?( forall( ftype FT2 )FT2 *, FT * );
306
307// ------------------------------------------------------------
308//
309// Section 4.10 Bitwise AND Operators
310//
311// ------------------------------------------------------------
312
313_Bool                   ?&?( _Bool, _Bool );
314signed int              ?&?( signed int, signed int );
315unsigned int            ?&?( unsigned int, unsigned int );
316signed long int         ?&?( signed long int, signed long int );
317unsigned long int       ?&?( unsigned long int, unsigned long int );
318signed long long int    ?&?( signed long long int, signed long long int );
319unsigned long long int  ?&?( unsigned long long int, unsigned long long int );
320
321// ------------------------------------------------------------
322//
323// Section 4.11 Bitwise XOR Operators
324//
325// ------------------------------------------------------------
326
327_Bool                   ?^?( _Bool, _Bool );
328signed int              ?^?( signed int, signed int );
329unsigned int            ?^?( unsigned int, unsigned int );
330signed long int         ?^?( signed long int, signed long int );
331unsigned long int       ?^?( unsigned long int, unsigned long int );
332signed long long int    ?^?( signed long long int, signed long long int );
333unsigned long long int  ?^?( unsigned long long int, unsigned long long int );
334
335// ------------------------------------------------------------
336//
337// Section 4.12 Bitwise OR Operators
338//
339// ------------------------------------------------------------
340
341_Bool                   ?|?( _Bool, _Bool );
342signed int              ?|?( signed int, signed int );
343unsigned int            ?|?( unsigned int, unsigned int );
344signed long int         ?|?( signed long int, signed long int );
345unsigned long int       ?|?( unsigned long int, unsigned long int );
346signed long long int    ?|?( signed long long int, signed long long int );
347unsigned long long int  ?|?( unsigned long long int, unsigned long long int );
348
349// ------------------------------------------------------------
350//
351// Section 4.16 Assignment Operator
352//
353// ------------------------------------------------------------
354
355forall( ftype FT ) FT *                 ?=?( FT **, FT * );
356forall( ftype FT ) FT *                 ?=?( FT * volatile *, FT * );
357
358forall( dtype DT ) DT *                 ?=?(                 DT *          *,                   DT * );
359forall( dtype DT ) DT *                 ?=?(                 DT * volatile *,                   DT * );
360forall( dtype DT ) const DT *           ?=?( const           DT *          *,                   DT * );
361forall( dtype DT ) const DT *           ?=?( const           DT * volatile *,                   DT * );
362forall( dtype DT ) const DT *           ?=?( const           DT *          *, const             DT * );
363forall( dtype DT ) const DT *           ?=?( const           DT * volatile *, const             DT * );
364forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          *,                   DT * );
365forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile *,                   DT * );
366forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          *,       volatile    DT * );
367forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile *,       volatile    DT * );
368
369forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *,                   DT * );
370forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *,                   DT * );
371forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *, const             DT * );
372forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *, const             DT * );
373forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *,       volatile    DT * );
374forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *,       volatile    DT * );
375forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *, const volatile    DT * );
376forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *, const volatile    DT * );
377
378forall( dtype DT ) DT *                 ?=?(                 DT *          *,                   void * );
379forall( dtype DT ) DT *                 ?=?(                 DT * volatile *,                   void * );
380forall( dtype DT ) const DT *           ?=?( const           DT *          *,                   void * );
381forall( dtype DT ) const DT *           ?=?( const           DT * volatile *,                   void * );
382forall( dtype DT ) const DT *           ?=?( const           DT *          *, const             void * );
383forall( dtype DT ) const DT *           ?=?( const           DT * volatile *, const             void * );
384forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          *,                   void * );
385forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile *,                   void * );
386forall( dtype DT ) volatile DT *        ?=?(       volatile  DT *          *,       volatile    void * );
387forall( dtype DT ) volatile DT *        ?=?(       volatile  DT * volatile *,       volatile    void * );
388
389forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *,                   void * );
390forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *,                   void * );
391forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *, const             void * );
392forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *, const             void * );
393forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *,       volatile    void * );
394forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *,       volatile    void * );
395forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT *          *, const volatile    void * );
396forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *, const volatile    void * );
397
398forall( dtype DT ) void *                ?=?(                void *          *,                 DT * );
399forall( dtype DT ) void *                ?=?(                void * volatile *,                 DT * );
400forall( dtype DT ) const void *          ?=?( const          void *          *,                 DT * );
401forall( dtype DT ) const void *          ?=?( const          void * volatile *,                 DT * );
402forall( dtype DT ) const void *          ?=?( const          void *          *, const           DT * );
403forall( dtype DT ) const void *          ?=?( const          void * volatile *, const           DT * );
404forall( dtype DT ) volatile void *       ?=?(       volatile void *          *,                 DT * );
405forall( dtype DT ) volatile void *       ?=?(       volatile void * volatile *,                 DT * );
406forall( dtype DT ) volatile void *       ?=?(       volatile void *          *,       volatile  DT * );
407forall( dtype DT ) volatile void *       ?=?(       volatile void * volatile *,       volatile  DT * );
408forall( dtype DT ) const volatile void * ?=?( const volatile void *          *,                 DT * );
409forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile *,                 DT * );
410forall( dtype DT ) const volatile void * ?=?( const volatile void *          *, const           DT * );
411forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile *, const           DT * );
412forall( dtype DT ) const volatile void * ?=?( const volatile void *          *,       volatile  DT * );
413forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile *,       volatile  DT * );
414forall( dtype DT ) const volatile void * ?=?( const volatile void *          *, const volatile  DT * );
415forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile *, const volatile  DT * );
416
417void *                  ?=?(                void *          *,                void * );
418void *                  ?=?(                void * volatile *,                void * );
419const void *            ?=?( const          void *          *,                void * );
420const void *            ?=?( const          void * volatile *,                void * );
421const void *            ?=?( const          void *          *, const          void * );
422const void *            ?=?( const          void * volatile *, const          void * );
423volatile void *         ?=?(       volatile void *          *,                void * );
424volatile void *         ?=?(       volatile void * volatile *,                void * );
425volatile void *         ?=?(       volatile void *          *,       volatile void * );
426volatile void *         ?=?(       volatile void * volatile *,       volatile void * );
427const volatile void *   ?=?( const volatile void *          *,                void * );
428const volatile void *   ?=?( const volatile void * volatile *,                void * );
429const volatile void *   ?=?( const volatile void *          *, const          void * );
430const volatile void *   ?=?( const volatile void * volatile *, const          void * );
431const volatile void *   ?=?( const volatile void *          *,       volatile void * );
432const volatile void *   ?=?( const volatile void * volatile *,       volatile void * );
433const volatile void *   ?=?( const volatile void *          *, const volatile void * );
434const volatile void *   ?=?( const volatile void * volatile *, const volatile void * );
435
436//forall( dtype DT ) DT *                       ?=?(                DT *          *, forall( dtype DT2 ) const DT2 * );
437//forall( dtype DT ) DT *                       ?=?(                DT * volatile *, forall( dtype DT2 ) const DT2 * );
438forall( dtype DT ) const DT *           ?=?( const          DT *          *, forall( dtype DT2 ) const DT2 * );
439forall( dtype DT ) const DT *           ?=?( const          DT * volatile *, forall( dtype DT2 ) const DT2 * );
440//forall( dtype DT ) volatile DT *      ?=?( volatile       DT *          *, forall( dtype DT2 ) const DT2 * );
441//forall( dtype DT ) volatile DT *      ?=?( volatile       DT * volatile *, forall( dtype DT2 ) const DT2 * );
442forall( dtype DT ) const volatile DT *  ?=?( const volatile DT *          *, forall( dtype DT2 ) const DT2 * );
443forall( dtype DT ) const volatile DT *  ?=?( const volatile DT * volatile *, forall( dtype DT2 ) const DT2 * );
444
445forall( ftype FT ) FT *                 ?=?( FT *          *, forall( ftype FT2 ) FT2 * );
446forall( ftype FT ) FT *                 ?=?( FT * volatile *, forall( ftype FT2 ) FT2 * );
447
448forall( dtype T | sized(T) ) T *                        ?+=?(                T *          *, ptrdiff_t );
449forall( dtype T | sized(T) ) T *                        ?+=?(                T * volatile *, ptrdiff_t );
450forall( dtype T | sized(T) ) const T *          ?+=?( const          T *          *, ptrdiff_t );
451forall( dtype T | sized(T) ) const T *          ?+=?( const          T * volatile *, ptrdiff_t );
452forall( dtype T | sized(T) ) volatile T *               ?+=?(       volatile T *          *, ptrdiff_t );
453forall( dtype T | sized(T) ) volatile T *               ?+=?(       volatile T * volatile *, ptrdiff_t );
454forall( dtype T | sized(T) ) const volatile T * ?+=?( const volatile T *          *, ptrdiff_t );
455forall( dtype T | sized(T) ) const volatile T * ?+=?( const volatile T * volatile *, ptrdiff_t );
456forall( dtype T | sized(T) ) T *                        ?-=?(                T *          *, ptrdiff_t );
457forall( dtype T | sized(T) ) T *                        ?-=?(                T * volatile *, ptrdiff_t );
458forall( dtype T | sized(T) ) const T *          ?-=?( const          T *          *, ptrdiff_t );
459forall( dtype T | sized(T) ) const T *          ?-=?( const          T * volatile *, ptrdiff_t );
460forall( dtype T | sized(T) ) volatile T *               ?-=?(       volatile T *          *, ptrdiff_t );
461forall( dtype T | sized(T) ) volatile T *               ?-=?(       volatile T * volatile *, ptrdiff_t );
462forall( dtype T | sized(T) ) const volatile T * ?-=?( const volatile T *          *, ptrdiff_t );
463forall( dtype T | sized(T) ) const volatile T * ?-=?( const volatile T * volatile *, ptrdiff_t );
464
465_Bool                   ?=?( _Bool *, _Bool ),                                  ?=?( volatile _Bool *, _Bool );
466char                    ?=?( char *, char ),                                    ?=?( volatile char *, char );
467char signed             ?=?( char signed *, char signed ),                      ?=?( volatile char signed *, char signed );
468char unsigned           ?=?( char unsigned *, char unsigned ),                  ?=?( volatile char unsigned *, char unsigned );
469int short               ?=?( int short *, int short ),                          ?=?( volatile int short *, int short );
470int short unsigned      ?=?( int short unsigned *, int short unsigned ),        ?=?( volatile int short unsigned *, int short unsigned );
471signed int              ?=?( signed int *, signed int ),                        ?=?( volatile signed int *, signed int );
472unsigned int            ?=?( unsigned *, unsigned ),                            ?=?( volatile unsigned *, unsigned );
473signed long int         ?=?( signed long int *, signed long int ),              ?=?( volatile signed long int *, signed long int );
474unsigned long int       ?=?( unsigned long int *, unsigned long int ),          ?=?( volatile unsigned long int *, unsigned long int );
475signed long long int    ?=?( signed long long int *, signed long long int ),    ?=?( volatile signed long long int *, signed long long int );
476unsigned long long int  ?=?( unsigned long long int *, unsigned long long int ), ?=?( volatile unsigned long long int *, unsigned long long int );
477zero_t          ?=?( zero_t *, zero_t );
478one_t                   ?=?( one_t *, one_t );
479
480
481_Bool                   ?*=?( _Bool *, _Bool ),                                 ?*=?( volatile _Bool *, _Bool );
482char                    ?*=?( char *, char ),                                   ?*=?( volatile char *, char );
483char signed             ?*=?( char signed *, char signed ),                     ?*=?( volatile char signed *, char signed );
484char unsigned           ?*=?( char unsigned *, char unsigned ),                 ?*=?( volatile char unsigned *, char unsigned );
485int short               ?*=?( int short *, int short ),                         ?*=?( volatile int short *, int short );
486int short unsigned      ?*=?( int short unsigned *, int short unsigned ),       ?*=?( volatile int short unsigned *, int short unsigned );
487signed int              ?*=?( signed int *, signed int ),                       ?*=?( volatile signed int *, signed int );
488unsigned int            ?*=?( unsigned *, unsigned ),                           ?*=?( volatile unsigned *, unsigned );
489signed long int         ?*=?( signed long int *, signed long int ),             ?*=?( volatile signed long int *, signed long int );
490unsigned long int       ?*=?( unsigned long int *, unsigned long int ),         ?*=?( volatile unsigned long int *, unsigned long int );
491signed long long int    ?*=?( signed long long int *, signed long long int ),   ?*=?( volatile signed long long int *, signed long long int );
492unsigned long long int  ?*=?( unsigned long long int *, unsigned long long int ), ?*=?( volatile unsigned long long int *, unsigned long long int );
493
494_Bool                   ?/=?( _Bool *, _Bool ),                                 ?/=?( volatile _Bool *, _Bool );
495char                    ?/=?( char *, char ),                                   ?/=?( volatile char *, char );
496char signed             ?/=?( char signed *, char signed ),                     ?/=?( volatile char signed *, char signed );
497char unsigned           ?/=?( char unsigned *, char unsigned ),                 ?/=?( volatile char unsigned *, char unsigned );
498int short               ?/=?( int short *, int short ),                         ?/=?( volatile int short *, int short );
499int short unsigned      ?/=?( int short unsigned *, int short unsigned ),       ?/=?( volatile int short unsigned *, int short unsigned );
500signed int              ?/=?( signed int *, signed int ),                       ?/=?( volatile signed int *, signed int );
501unsigned int            ?/=?( unsigned *, unsigned ),                           ?/=?( volatile unsigned *, unsigned );
502signed long int         ?/=?( signed long int *, signed long int ),             ?/=?( volatile signed long int *, signed long int );
503unsigned long int       ?/=?( unsigned long int *, unsigned long int ),         ?/=?( volatile unsigned long int *, unsigned long int );
504signed long long int    ?/=?( signed long long int *, signed long long int ),   ?/=?( volatile signed long long int *, signed long long int );
505unsigned long long int  ?/=?( unsigned long long int *, unsigned long long int ), ?/=?( volatile unsigned long long int *, unsigned long long int );
506
507_Bool                   ?%=?( _Bool *, _Bool ),                                 ?%=?( volatile _Bool *, _Bool );
508char                    ?%=?( char *, char ),                                   ?%=?( volatile char *, char );
509char signed             ?%=?( char signed *, char signed ),                     ?%=?( volatile char signed *, char signed );
510char unsigned           ?%=?( char unsigned *, char unsigned ),                 ?%=?( volatile char unsigned *, char unsigned );
511int short               ?%=?( int short *, int short ),                         ?%=?( volatile int short *, int short );
512int short unsigned      ?%=?( int short unsigned *, int short unsigned ),       ?%=?( volatile int short unsigned *, int short unsigned );
513signed int              ?%=?( signed int *, signed int ),                       ?%=?( volatile signed int *, signed int );
514unsigned int            ?%=?( unsigned *, unsigned ),                           ?%=?( volatile unsigned *, unsigned );
515signed long int         ?%=?( signed long int *, signed long int ),             ?%=?( volatile signed long int *, signed long int );
516unsigned long int       ?%=?( unsigned long int *, unsigned long int ),         ?%=?( volatile unsigned long int *, unsigned long int );
517signed long long int    ?%=?( signed long long int *, signed long long int ),   ?%=?( volatile signed long long int *, signed long long int );
518unsigned long long int  ?%=?( unsigned long long int *, unsigned long long int ), ?%=?( volatile unsigned long long int *, unsigned long long int );
519
520_Bool                   ?+=?( _Bool *, _Bool ),                                 ?+=?( volatile _Bool *, _Bool );
521char                    ?+=?( char *, char ),                                   ?+=?( volatile char *, char );
522char signed             ?+=?( char signed *, char signed ),                     ?+=?( volatile char signed *, char signed );
523char unsigned           ?+=?( char unsigned *, char unsigned ),                 ?+=?( volatile char unsigned *, char unsigned );
524int short               ?+=?( int short *, int short ),                         ?+=?( volatile int short *, int short );
525int short unsigned      ?+=?( int short unsigned *, int short unsigned ),       ?+=?( volatile int short unsigned *, int short unsigned );
526signed int              ?+=?( signed int *, signed int ),                       ?+=?( volatile signed int *, signed int );
527unsigned int            ?+=?( unsigned *, unsigned ),                           ?+=?( volatile unsigned *, unsigned );
528signed long int         ?+=?( signed long int *, signed long int ),             ?+=?( volatile signed long int *, signed long int );
529unsigned long int       ?+=?( unsigned long int *, unsigned long int ),         ?+=?( volatile unsigned long int *, unsigned long int );
530signed long long int    ?+=?( signed long long int *, signed long long int ),   ?+=?( volatile signed long long int *, signed long long int );
531unsigned long long int  ?+=?( unsigned long long int *, unsigned long long int ), ?+=?( volatile unsigned long long int *, unsigned long long int );
532
533_Bool                   ?-=?( _Bool *, _Bool ),                                 ?-=?( volatile _Bool *, _Bool );
534char                    ?-=?( char *, char ),                                   ?-=?( volatile char *, char );
535char signed             ?-=?( char signed *, char signed ),                     ?-=?( volatile char signed *, char signed );
536char unsigned           ?-=?( char unsigned *, char unsigned ),                 ?-=?( volatile char unsigned *, char unsigned );
537int short               ?-=?( int short *, int short ),                         ?-=?( volatile int short *, int short );
538int short unsigned      ?-=?( int short unsigned *, int short unsigned ),       ?-=?( volatile int short unsigned *, int short unsigned );
539signed int              ?-=?( signed int *, signed int ),                       ?-=?( volatile signed int *, signed int );
540unsigned int            ?-=?( unsigned *, unsigned ),                           ?-=?( volatile unsigned *, unsigned );
541signed long int         ?-=?( signed long int *, signed long int ),             ?-=?( volatile signed long int *, signed long int );
542unsigned long int       ?-=?( unsigned long int *, unsigned long int ),         ?-=?( volatile unsigned long int *, unsigned long int );
543signed long long int    ?-=?( signed long long int *, signed long long int ),   ?-=?( volatile signed long long int *, signed long long int );
544unsigned long long int  ?-=?( unsigned long long int *, unsigned long long int ), ?-=?( volatile unsigned long long int *, unsigned long long int );
545
546_Bool                   ?<<=?( _Bool *, _Bool ),                                ?<<=?( volatile _Bool *, _Bool );
547char                    ?<<=?( char *, char ),                                  ?<<=?( volatile char *, char );
548char signed             ?<<=?( char signed *, char signed ),                    ?<<=?( volatile char signed *, char signed );
549char unsigned           ?<<=?( char unsigned *, char unsigned ),                ?<<=?( volatile char unsigned *, char unsigned );
550int short               ?<<=?( int short *, int short ),                        ?<<=?( volatile int short *, int short );
551int short unsigned      ?<<=?( int short unsigned *, int short unsigned ),      ?<<=?( volatile int short unsigned *, int short unsigned );
552signed int              ?<<=?( signed int *, signed int ),                      ?<<=?( volatile signed int *, signed int );
553unsigned int            ?<<=?( unsigned *, unsigned ),                          ?<<=?( volatile unsigned *, unsigned );
554signed long int         ?<<=?( signed long int *, signed long int ),            ?<<=?( volatile signed long int *, signed long int );
555unsigned long int       ?<<=?( unsigned long int *, unsigned long int ),        ?<<=?( volatile unsigned long int *, unsigned long int );
556signed long long int    ?<<=?( signed long long int *, signed long long int ),  ?<<=?( volatile signed long long int *, signed long long int );
557unsigned long long int  ?<<=?( unsigned long long int *, unsigned long long int ), ?<<=?( volatile unsigned long long int *, unsigned long long int );
558
559_Bool                   ?>>=?( _Bool *, _Bool ),                                ?>>=?( volatile _Bool *, _Bool );
560char                    ?>>=?( char *, char ),                                  ?>>=?( volatile char *, char );
561char signed             ?>>=?( char signed *, char signed ),                    ?>>=?( volatile char signed *, char signed );
562char unsigned           ?>>=?( char unsigned *, char unsigned ),                ?>>=?( volatile char unsigned *, char unsigned );
563int short               ?>>=?( int short *, int short ),                        ?>>=?( volatile int short *, int short );
564int short unsigned      ?>>=?( int short unsigned *, int short unsigned ),      ?>>=?( volatile int short unsigned *, int short unsigned );
565signed int              ?>>=?( signed int *, signed int ),                      ?>>=?( volatile signed int *, signed int );
566unsigned int            ?>>=?( unsigned *, unsigned ),                          ?>>=?( volatile unsigned *, unsigned );
567signed long int         ?>>=?( signed long int *, signed long int ),            ?>>=?( volatile signed long int *, signed long int );
568unsigned long int       ?>>=?( unsigned long int *, unsigned long int ),        ?>>=?( volatile unsigned long int *, unsigned long int );
569signed long long int    ?>>=?( signed long long int *, signed long long int ),  ?>>=?( volatile signed long long int *, signed long long int );
570unsigned long long int  ?>>=?( unsigned long long int *, unsigned long long int ), ?>>=?( volatile unsigned long long int *, unsigned long long int );
571
572_Bool                   ?&=?( _Bool *, _Bool ),                                 ?&=?( volatile _Bool *, _Bool );
573char                    ?&=?( char *, char ),                                   ?&=?( volatile char *, char );
574char signed             ?&=?( char signed *, char signed ),                     ?&=?( volatile char signed *, char signed );
575char unsigned           ?&=?( char unsigned *, char unsigned ),                 ?&=?( volatile char unsigned *, char unsigned );
576int short               ?&=?( int short *, int short ),                         ?&=?( volatile int short *, int short );
577int short unsigned      ?&=?( int short unsigned *, int short unsigned ),       ?&=?( volatile int short unsigned *, int short unsigned );
578signed int              ?&=?( signed int *, signed int ),                       ?&=?( volatile signed int *, signed int );
579unsigned int            ?&=?( unsigned *, unsigned ),                           ?&=?( volatile unsigned *, unsigned );
580signed long int         ?&=?( signed long int *, signed long int ),             ?&=?( volatile signed long int *, signed long int );
581unsigned long int       ?&=?( unsigned long int *, unsigned long int ),         ?&=?( volatile unsigned long int *, unsigned long int );
582signed long long int    ?&=?( signed long long int *, signed long long int ),   ?&=?( volatile signed long long int *, signed long long int );
583unsigned long long int  ?&=?( unsigned long long int *, unsigned long long int ), ?&=?( volatile unsigned long long int *, unsigned long long int );
584
585_Bool                   ?|=?( _Bool *, _Bool ),                                 ?|=?( volatile _Bool *, _Bool );
586char                    ?|=?( char *, char ),                                   ?|=?( volatile char *, char );
587char signed             ?|=?( char signed *, char signed ),                     ?|=?( volatile char signed *, char signed );
588char unsigned           ?|=?( char unsigned *, char unsigned ),                 ?|=?( volatile char unsigned *, char unsigned );
589int short               ?|=?( int short *, int short ),                         ?|=?( volatile int short *, int short );
590int short unsigned      ?|=?( int short unsigned *, int short unsigned ),       ?|=?( volatile int short unsigned *, int short unsigned );
591signed int              ?|=?( signed int *, signed int ),                       ?|=?( volatile signed int *, signed int );
592unsigned int            ?|=?( unsigned *, unsigned ),                           ?|=?( volatile unsigned *, unsigned );
593signed long int         ?|=?( signed long int *, signed long int ),             ?|=?( volatile signed long int *, signed long int );
594unsigned long int       ?|=?( unsigned long int *, unsigned long int ),         ?|=?( volatile unsigned long int *, unsigned long int );
595signed long long int    ?|=?( signed long long int *, signed long long int ),   ?|=?( volatile signed long long int *, signed long long int );
596unsigned long long int  ?|=?( unsigned long long int *, unsigned long long int ), ?|=?( volatile unsigned long long int *, unsigned long long int );
597
598_Bool                   ?^=?( _Bool *, _Bool ),                                 ?^=?( volatile _Bool *, _Bool );
599char                    ?^=?( char *, char ),                                   ?^=?( volatile char *, char );
600char signed             ?^=?( char signed *, char signed ),                     ?^=?( volatile char signed *, char signed );
601char unsigned           ?^=?( char unsigned *, char unsigned ),                 ?^=?( volatile char unsigned *, char unsigned );
602int short               ?^=?( int short *, int short ),                         ?^=?( volatile int short *, int short );
603int short unsigned      ?^=?( int short unsigned *, int short unsigned ),       ?^=?( volatile int short unsigned *, int short unsigned );
604signed int              ?^=?( signed int *, signed int ),                       ?^=?( volatile signed int *, signed int );
605unsigned int            ?^=?( unsigned *, unsigned ),                           ?^=?( volatile unsigned *, unsigned );
606signed long int         ?^=?( signed long int *, signed long int ),             ?^=?( volatile signed long int *, signed long int );
607unsigned long int       ?^=?( unsigned long int *, unsigned long int ),         ?^=?( volatile unsigned long int *, unsigned long int );
608signed long long int    ?^=?( signed long long int *, signed long long int ),   ?^=?( volatile signed long long int *, signed long long int );
609unsigned long long int  ?^=?( unsigned long long int *, unsigned long long int ), ?^=?( volatile unsigned long long int *, unsigned long long int );
610
611float                   ?=?(  float *, float ), ?=?(  volatile float *, float ),
612                        ?*=?( float *, float ), ?*=?( volatile float *, float ),
613                        ?/=?( float *, float ), ?/=?( volatile float *, float ),
614                        ?+=?( float *, float ), ?+=?( volatile float *, float ),
615                        ?-=?( float *, float ), ?-=?( volatile float *, float );
616
617double                  ?=?(  double *, double ), ?=?(  volatile double *, double ),
618                        ?*=?( double *, double ), ?*=?( volatile double *, double ),
619                        ?/=?( double *, double ), ?/=?( volatile double *, double ),
620                        ?+=?( double *, double ), ?+=?( volatile double *, double ),
621                        ?-=?( double *, double ), ?-=?( volatile double *, double );
622
623long double             ?=?(  long double *, long double ), ?=?(  volatile long double *, long double ),
624                        ?*=?( long double *, long double ), ?*=?( volatile long double *, long double ),
625                        ?/=?( long double *, long double ), ?/=?( volatile long double *, long double ),
626                        ?+=?( long double *, long double ), ?+=?( volatile long double *, long double ),
627                        ?-=?( long double *, long double ), ?-=?( volatile long double *, long double );
628
629float _Complex          ?=?(  float _Complex *, float _Complex ), ?=?(  volatile float _Complex *, float _Complex ),
630                        ?*=?( float _Complex *, float _Complex ), ?*=?( volatile float _Complex *, float _Complex ),
631                        ?/=?( float _Complex *, float _Complex ), ?/=?( volatile float _Complex *, float _Complex ),
632                        ?+=?( float _Complex *, float _Complex ), ?+=?( volatile float _Complex *, float _Complex ),
633                        ?-=?( float _Complex *, float _Complex ), ?-=?( volatile float _Complex *, float _Complex );
634
635double _Complex         ?=?(  double _Complex *, double _Complex ), ?=?(  volatile double _Complex *, double _Complex ),
636                        ?*=?( double _Complex *, double _Complex ), ?*=?( volatile double _Complex *, double _Complex ),
637                        ?/=?( double _Complex *, double _Complex ), ?/=?( volatile double _Complex *, double _Complex ),
638                        ?+=?( double _Complex *, double _Complex ), ?+=?( volatile double _Complex *, double _Complex ),
639                        ?-=?( double _Complex *, double _Complex ), ?-=?( volatile double _Complex *, double _Complex );
640
641long double _Complex    ?=?(  long double _Complex *, long double _Complex ), ?=?(  volatile long double _Complex *, long double _Complex ),
642                        ?*=?( long double _Complex *, long double _Complex ), ?*=?( volatile long double _Complex *, long double _Complex ),
643                        ?/=?( long double _Complex *, long double _Complex ), ?/=?( volatile long double _Complex *, long double _Complex ),
644                        ?+=?( long double _Complex *, long double _Complex ), ?+=?( volatile long double _Complex *, long double _Complex ),
645                        ?-=?( long double _Complex *, long double _Complex ), ?-=?( volatile long double _Complex *, long double _Complex );
646
647
648
649
650
651// ------------------------------------------------------------
652//
653// Section ??? Constructors and Destructors
654//
655// ------------------------------------------------------------
656
657// default ctor
658void    ?{}( _Bool * );
659void    ?{}( char * );
660void    ?{}( unsigned char * );
661void    ?{}( char signed * );
662void    ?{}( int short * );
663void    ?{}( int short unsigned * );
664void    ?{}( signed int * );
665void    ?{}( unsigned int * );
666void    ?{}( signed long int * );
667void    ?{}( unsigned long int * );
668void    ?{}( signed long long int * );
669void    ?{}( unsigned long long int * );
670void    ?{}( float * );
671void    ?{}( double * );
672void    ?{}( long double * );
673void    ?{}( float _Complex * );
674void    ?{}( double _Complex * );
675void    ?{}( long double _Complex * );
676void    ?{}( zero_t * );
677void    ?{}( one_t * );
678
679// copy ctor
680void    ?{}( _Bool *, _Bool );
681void    ?{}( char *, char );
682void    ?{}( unsigned char *, unsigned char );
683void    ?{}( char signed *, char signed );
684void    ?{}( int short *, int short );
685void    ?{}( int short unsigned *, int short unsigned );
686void    ?{}( signed int *, signed int);
687void    ?{}( unsigned int *, unsigned int);
688void    ?{}( signed long int *, signed long int);
689void    ?{}( unsigned long int *, unsigned long int);
690void    ?{}( signed long long int *, signed long long int);
691void    ?{}( unsigned long long int *, unsigned long long int);
692void    ?{}( float *, float);
693void    ?{}( double *, double);
694void    ?{}( long double *, long double);
695void    ?{}( float _Complex *, float _Complex);
696void    ?{}( double _Complex *, double _Complex);
697void    ?{}( long double _Complex *, long double _Complex);
698void    ?{}( zero_t *, zero_t );
699void    ?{}( one_t *, one_t );
700
701// dtor
702void    ^?{}( _Bool * );
703void    ^?{}( char * );
704void    ^?{}( char unsigned * );
705void    ^?{}( char signed * );
706void    ^?{}( int short * );
707void    ^?{}( int short unsigned * );
708void    ^?{}( signed int * );
709void    ^?{}( unsigned int * );
710void    ^?{}( signed long int * );
711void    ^?{}( unsigned long int * );
712void    ^?{}( signed long long int * );
713void    ^?{}( unsigned long long int * );
714void    ^?{}( float * );
715void    ^?{}( double * );
716void    ^?{}( long double * );
717void    ^?{}( float _Complex * );
718void    ^?{}( double _Complex * );
719void    ^?{}( long double _Complex * );
720void    ^?{}( zero_t * );
721void    ^?{}( one_t * );
722
723// // default ctor
724// forall( dtype DT ) void       ?{}(                DT ** );
725// forall( dtype DT ) void       ?{}( const          DT ** );
726// forall( dtype DT ) void       ?{}(       volatile DT ** );
727// forall( dtype DT ) void       ?{}( const volatile DT ** );
728
729// // copy ctor
730// forall( dtype DT ) void       ?{}(                DT **, DT* );
731// forall( dtype DT ) void       ?{}( const          DT **, DT* );
732// forall( dtype DT ) void       ?{}(       volatile DT **, DT* );
733// forall( dtype DT ) void       ?{}( const volatile DT **, DT* );
734
735// // dtor
736// forall( dtype DT ) void      ^?{}(                DT ** );
737// forall( dtype DT ) void      ^?{}( const          DT ** );
738// forall( dtype DT ) void      ^?{}(       volatile DT ** );
739// forall( dtype DT ) void      ^?{}( const volatile DT ** );
740
741// copied from assignment section
742// copy constructors
743forall( ftype FT ) void ?{}( FT **, FT * );
744forall( ftype FT ) void ?{}( FT * volatile *, FT * );
745
746forall( dtype DT ) void ?{}(                 DT *          *,                   DT * );
747forall( dtype DT ) void ?{}( const           DT *          *,                   DT * );
748forall( dtype DT ) void ?{}( const           DT *          *, const             DT * );
749forall( dtype DT ) void ?{}(       volatile  DT *          *,                   DT * );
750forall( dtype DT ) void ?{}(       volatile  DT *          *,       volatile    DT * );
751
752forall( dtype DT ) void ?{}( const volatile  DT *          *,                   DT * );
753forall( dtype DT ) void ?{}( const volatile  DT *          *, const             DT * );
754forall( dtype DT ) void ?{}( const volatile  DT *          *,       volatile    DT * );
755forall( dtype DT ) void ?{}( const volatile  DT *          *, const volatile    DT * );
756
757forall( dtype DT ) void ?{}(                 DT *          *,                   void * );
758forall( dtype DT ) void ?{}( const           DT *          *,                   void * );
759forall( dtype DT ) void ?{}( const           DT *          *, const             void * );
760forall( dtype DT ) void ?{}(       volatile  DT *          *,                   void * );
761forall( dtype DT ) void ?{}(       volatile  DT *          *,       volatile    void * );
762
763forall( dtype DT ) void ?{}( const volatile  DT *          *,                   void * );
764forall( dtype DT ) void ?{}( const volatile  DT *          *, const             void * );
765forall( dtype DT ) void ?{}( const volatile  DT *          *,       volatile    void * );
766forall( dtype DT ) void ?{}( const volatile  DT *          *, const volatile    void * );
767
768forall( dtype DT ) void ?{}(                 void *          *,                 DT * );
769forall( dtype DT ) void ?{}( const           void *          *,                 DT * );
770forall( dtype DT ) void ?{}( const           void *          *, const           DT * );
771forall( dtype DT ) void ?{}(        volatile void *          *,                 DT * );
772forall( dtype DT ) void ?{}(        volatile void *          *,       volatile  DT * );
773forall( dtype DT ) void ?{}( const volatile void *           *,                 DT * );
774forall( dtype DT ) void ?{}( const volatile void *           *, const           DT * );
775forall( dtype DT ) void ?{}( const volatile void *           *,       volatile  DT * );
776forall( dtype DT ) void ?{}( const volatile void *           *, const volatile  DT * );
777
778void    ?{}(                void *          *,                void * );
779void    ?{}( const          void *          *,                void * );
780void    ?{}( const          void *          *, const          void * );
781void    ?{}(       volatile void *          *,                void * );
782void    ?{}(       volatile void *          *,       volatile void * );
783void    ?{}( const volatile void *          *,                void * );
784void    ?{}( const volatile void *          *, const          void * );
785void    ?{}( const volatile void *          *,       volatile void * );
786void    ?{}( const volatile void *          *, const volatile void * );
787
788//forall( dtype DT ) void ?{}(              DT *          *, forall( dtype DT2 ) const DT2 * );
789//forall( dtype DT ) void ?{}(              DT * volatile *, forall( dtype DT2 ) const DT2 * );
790forall( dtype DT ) void ?{}( const          DT *          *, forall( dtype DT2 ) const DT2 * );
791//forall( dtype DT ) void ?{}( volatile     DT *          *, forall( dtype DT2 ) const DT2 * );
792//forall( dtype DT ) void ?{}( volatile     DT * volatile *, forall( dtype DT2 ) const DT2 * );
793forall( dtype DT ) void ?{}( const volatile DT *          *, forall( dtype DT2 ) const DT2 * );
794
795forall( ftype FT ) void ?{}( FT *          *, forall( ftype FT2 ) FT2 * );
796
797// default ctors
798forall( ftype FT ) void ?{}( FT *          * );
799
800forall( dtype DT ) void ?{}(                 DT *          *);
801forall( dtype DT ) void ?{}( const           DT *          *);
802forall( dtype DT ) void ?{}(       volatile  DT *          *);
803forall( dtype DT ) void ?{}( const volatile  DT *          *);
804
805void    ?{}(                void *          *);
806void    ?{}( const          void *          *);
807void    ?{}(       volatile void *          *);
808void    ?{}( const volatile void *          *);
809
810// dtors
811forall( ftype FT ) void ^?{}( FT *         * );
812
813forall( dtype DT ) void ^?{}(                DT *          *);
814forall( dtype DT ) void ^?{}( const          DT *          *);
815forall( dtype DT ) void ^?{}(      volatile  DT *          *);
816forall( dtype DT ) void ^?{}( const volatile  DT *         *);
817
818void    ^?{}(               void *          *);
819void    ^?{}( const         void *          *);
820void    ^?{}(      volatile void *          *);
821void    ^?{}( const volatile void *         *);
822
823// Local Variables: //
824// mode: c //
825// tab-width: 8 //
826// End: //
Note: See TracBrowser for help on using the repository browser.