26 #ifndef __itkOpenCLOstreamSupport_h 27 #define __itkOpenCLOstreamSupport_h 38 template<
typename u
charT,
typename traits >
40 std::basic_ostream< ucharT, traits > &
42 std::basic_ostream< ucharT, traits > & strm,
45 strm <<
"(uchar)(" << _v <<
")";
50 template<
typename u
charT,
typename traits >
52 std::basic_ostream< ucharT, traits > &
54 std::basic_ostream< ucharT, traits > & strm,
55 const cl_uchar2 & _v )
58 for(
unsigned int i = 0; i < 2; ++i )
61 if( i != 1 ) { strm <<
", "; }
68 template<
typename u
charT,
typename traits >
70 std::basic_ostream< ucharT, traits > &
72 std::basic_ostream< ucharT, traits > & strm,
73 const cl_uchar4 & _v )
76 for(
unsigned int i = 0; i < 4; ++i )
79 if( i != 3 ) { strm <<
", "; }
86 template<
typename u
charT,
typename traits >
88 std::basic_ostream< ucharT, traits > &
90 std::basic_ostream< ucharT, traits > & strm,
91 const cl_uchar8 & _v )
94 for(
unsigned int i = 0; i < 8; ++i )
97 if( i != 7 ) { strm <<
", "; }
104 template<
typename u
charT,
typename traits >
106 std::basic_ostream< ucharT, traits > &
108 std::basic_ostream< ucharT, traits > & strm,
109 const cl_uchar16 & _v )
111 strm <<
"(uchar16)(";
112 for(
unsigned int i = 0; i < 16; ++i )
115 if( i != 15 ) { strm <<
", "; }
124 template<
typename charT,
typename traits >
126 std::basic_ostream< charT, traits > &
128 std::basic_ostream< charT, traits > & strm,
131 strm <<
"(char)(" << _v <<
")";
136 template<
typename charT,
typename traits >
138 std::basic_ostream< charT, traits > &
140 std::basic_ostream< charT, traits > & strm,
141 const cl_char2 & _v )
144 for(
unsigned int i = 0; i < 2; ++i )
147 if( i != 1 ) { strm <<
", "; }
154 template<
typename charT,
typename traits >
156 std::basic_ostream< charT, traits > &
158 std::basic_ostream< charT, traits > & strm,
159 const cl_char4 & _v )
162 for(
unsigned int i = 0; i < 4; ++i )
165 if( i != 3 ) { strm <<
", "; }
172 template<
typename charT,
typename traits >
174 std::basic_ostream< charT, traits > &
176 std::basic_ostream< charT, traits > & strm,
177 const cl_char8 & _v )
180 for(
unsigned int i = 0; i < 8; ++i )
183 if( i != 7 ) { strm <<
", "; }
190 template<
typename charT,
typename traits >
192 std::basic_ostream< charT, traits > &
194 std::basic_ostream< charT, traits > & strm,
195 const cl_char16 & _v )
198 for(
unsigned int i = 0; i < 16; ++i )
201 if( i != 15 ) { strm <<
", "; }
210 template<
typename u
shortT,
typename traits >
212 std::basic_ostream< ushortT, traits > &
214 std::basic_ostream< ushortT, traits > & strm,
215 const cl_ushort & _v )
217 strm <<
"(ushort)(" << _v <<
")";
222 template<
typename u
shortT,
typename traits >
224 std::basic_ostream< ushortT, traits > &
226 std::basic_ostream< ushortT, traits > & strm,
227 const cl_ushort2 & _v )
229 strm <<
"(ushort2)(";
230 for(
unsigned int i = 0; i < 2; ++i )
233 if( i != 1 ) { strm <<
", "; }
240 template<
typename u
shortT,
typename traits >
242 std::basic_ostream< ushortT, traits > &
244 std::basic_ostream< ushortT, traits > & strm,
245 const cl_ushort4 & _v )
247 strm <<
"(ushort4)(";
248 for(
unsigned int i = 0; i < 4; ++i )
251 if( i != 3 ) { strm <<
", "; }
258 template<
typename u
shortT,
typename traits >
260 std::basic_ostream< ushortT, traits > &
262 std::basic_ostream< ushortT, traits > & strm,
263 const cl_ushort8 & _v )
265 strm <<
"(ushort8)(";
266 for(
unsigned int i = 0; i < 8; ++i )
269 if( i != 7 ) { strm <<
", "; }
276 template<
typename u
shortT,
typename traits >
278 std::basic_ostream< ushortT, traits > &
280 std::basic_ostream< ushortT, traits > & strm,
281 const cl_ushort16 & _v )
283 strm <<
"(ushort16)(";
284 for(
unsigned int i = 0; i < 16; ++i )
287 if( i != 15 ) { strm <<
", "; }
296 template<
typename shortT,
typename traits >
298 std::basic_ostream< shortT, traits > &
300 std::basic_ostream< shortT, traits > & strm,
301 const cl_short & _v )
303 strm <<
"(short)(" << _v <<
")";
308 template<
typename shortT,
typename traits >
310 std::basic_ostream< shortT, traits > &
312 std::basic_ostream< shortT, traits > & strm,
313 const cl_short2 & _v )
316 for(
unsigned int i = 0; i < 2; ++i )
319 if( i != 1 ) { strm <<
", "; }
326 template<
typename shortT,
typename traits >
328 std::basic_ostream< shortT, traits > &
330 std::basic_ostream< shortT, traits > & strm,
331 const cl_short4 & _v )
334 for(
unsigned int i = 0; i < 4; ++i )
337 if( i != 3 ) { strm <<
", "; }
344 template<
typename shortT,
typename traits >
346 std::basic_ostream< shortT, traits > &
348 std::basic_ostream< shortT, traits > & strm,
349 const cl_short8 & _v )
352 for(
unsigned int i = 0; i < 8; ++i )
355 if( i != 7 ) { strm <<
", "; }
362 template<
typename shortT,
typename traits >
364 std::basic_ostream< shortT, traits > &
366 std::basic_ostream< shortT, traits > & strm,
367 const cl_short16 & _v )
369 strm <<
"(short16)(";
370 for(
unsigned int i = 0; i < 16; ++i )
373 if( i != 15 ) { strm <<
", "; }
382 template<
typename charT,
typename traits >
384 std::basic_ostream< charT, traits > &
386 std::basic_ostream< charT, traits > & strm,
389 strm <<
"(uint)(" << _v <<
")";
394 template<
typename charT,
typename traits >
396 std::basic_ostream< charT, traits > &
398 std::basic_ostream< charT, traits > & strm,
399 const cl_uint2 & _v )
402 for(
unsigned int i = 0; i < 2; ++i )
405 if( i != 1 ) { strm <<
", "; }
412 template<
typename charT,
typename traits >
414 std::basic_ostream< charT, traits > &
416 std::basic_ostream< charT, traits > & strm,
417 const cl_uint4 & _v )
420 for(
unsigned int i = 0; i < 4; ++i )
423 if( i != 3 ) { strm <<
", "; }
430 template<
typename charT,
typename traits >
432 std::basic_ostream< charT, traits > &
434 std::basic_ostream< charT, traits > & strm,
435 const cl_uint8 & _v )
438 for(
unsigned int i = 0; i < 8; ++i )
441 if( i != 7 ) { strm <<
", "; }
448 template<
typename charT,
typename traits >
450 std::basic_ostream< charT, traits > &
452 std::basic_ostream< charT, traits > & strm,
453 const cl_uint16 & _v )
456 for(
unsigned int i = 0; i < 16; ++i )
459 if( i != 15 ) { strm <<
", "; }
468 template<
typename charT,
typename traits >
470 std::basic_ostream< charT, traits > &
472 std::basic_ostream< charT, traits > & strm,
475 strm <<
"(int)(" << _v <<
")";
480 template<
typename charT,
typename traits >
482 std::basic_ostream< charT, traits > &
484 std::basic_ostream< charT, traits > & strm,
488 for(
unsigned int i = 0; i < 2; ++i )
491 if( i != 1 ) { strm <<
", "; }
498 template<
typename charT,
typename traits >
500 std::basic_ostream< charT, traits > &
502 std::basic_ostream< charT, traits > & strm,
506 for(
unsigned int i = 0; i < 4; ++i )
509 if( i != 3 ) { strm <<
", "; }
516 template<
typename charT,
typename traits >
518 std::basic_ostream< charT, traits > &
520 std::basic_ostream< charT, traits > & strm,
524 for(
unsigned int i = 0; i < 8; ++i )
527 if( i != 7 ) { strm <<
", "; }
534 template<
typename charT,
typename traits >
536 std::basic_ostream< charT, traits > &
538 std::basic_ostream< charT, traits > & strm,
539 const cl_int16 & _v )
542 for(
unsigned int i = 0; i < 16; ++i )
545 if( i != 15 ) { strm <<
", "; }
554 template<
typename u
longT,
typename traits >
556 std::basic_ostream< ulongT, traits > &
558 std::basic_ostream< ulongT, traits > & strm,
559 const cl_ulong & _v )
561 strm <<
"(ulong)(" << _v <<
")";
566 template<
typename u
longT,
typename traits >
568 std::basic_ostream< ulongT, traits > &
570 std::basic_ostream< ulongT, traits > & strm,
571 const cl_ulong2 & _v )
574 for(
unsigned int i = 0; i < 2; ++i )
577 if( i != 1 ) { strm <<
", "; }
584 template<
typename u
longT,
typename traits >
586 std::basic_ostream< ulongT, traits > &
588 std::basic_ostream< ulongT, traits > & strm,
589 const cl_ulong4 & _v )
592 for(
unsigned int i = 0; i < 4; ++i )
595 if( i != 3 ) { strm <<
", "; }
602 template<
typename u
longT,
typename traits >
604 std::basic_ostream< ulongT, traits > &
606 std::basic_ostream< ulongT, traits > & strm,
607 const cl_ulong8 & _v )
610 for(
unsigned int i = 0; i < 8; ++i )
613 if( i != 7 ) { strm <<
", "; }
620 template<
typename u
longT,
typename traits >
622 std::basic_ostream< ulongT, traits > &
624 std::basic_ostream< ulongT, traits > & strm,
625 const cl_ulong16 & _v )
627 strm <<
"(ulong16)(";
628 for(
unsigned int i = 0; i < 16; ++i )
631 if( i != 15 ) { strm <<
", "; }
640 template<
typename longT,
typename traits >
642 std::basic_ostream< longT, traits > &
644 std::basic_ostream< longT, traits > & strm,
647 strm <<
"(long)(" << _v <<
")";
652 template<
typename longT,
typename traits >
654 std::basic_ostream< longT, traits > &
656 std::basic_ostream< longT, traits > & strm,
657 const cl_long2 & _v )
660 for(
unsigned int i = 0; i < 2; ++i )
663 if( i != 1 ) { strm <<
", "; }
670 template<
typename longT,
typename traits >
672 std::basic_ostream< longT, traits > &
674 std::basic_ostream< longT, traits > & strm,
675 const cl_long4 & _v )
678 for(
unsigned int i = 0; i < 4; ++i )
681 if( i != 3 ) { strm <<
", "; }
688 template<
typename longT,
typename traits >
690 std::basic_ostream< longT, traits > &
692 std::basic_ostream< longT, traits > & strm,
693 const cl_long8 & _v )
696 for(
unsigned int i = 0; i < 8; ++i )
699 if( i != 7 ) { strm <<
", "; }
706 template<
typename longT,
typename traits >
708 std::basic_ostream< longT, traits > &
710 std::basic_ostream< longT, traits > & strm,
711 const cl_long16 & _v )
714 for(
unsigned int i = 0; i < 16; ++i )
717 if( i != 15 ) { strm <<
", "; }
726 template<
typename charT,
typename traits >
728 std::basic_ostream< charT, traits > &
730 std::basic_ostream< charT, traits > & strm,
731 const cl_float & _v )
733 strm <<
"(float)(" << _v <<
")";
738 template<
typename charT,
typename traits >
740 std::basic_ostream< charT, traits > &
742 std::basic_ostream< charT, traits > & strm,
743 const cl_float2 & _v )
746 for(
unsigned int i = 0; i < 2; ++i )
748 strm << std::fixed << std::setprecision( 8 ) << _v.s[ i ];
749 if( i != 1 ) { strm <<
", "; }
756 template<
typename charT,
typename traits >
758 std::basic_ostream< charT, traits > &
760 std::basic_ostream< charT, traits > & strm,
761 const cl_float4 & _v )
764 for(
unsigned int i = 0; i < 4; ++i )
766 strm << std::fixed << std::setprecision( 8 ) << _v.s[ i ];
767 if( i != 3 ) { strm <<
", "; }
774 template<
typename charT,
typename traits >
776 std::basic_ostream< charT, traits > &
778 std::basic_ostream< charT, traits > & strm,
779 const cl_float8 & _v )
782 for(
unsigned int i = 0; i < 8; ++i )
784 strm << std::fixed << std::setprecision( 8 ) << _v.s[ i ];
785 if( i != 7 ) { strm <<
", "; }
792 template<
typename charT,
typename traits >
794 std::basic_ostream< charT, traits > &
796 std::basic_ostream< charT, traits > & strm,
797 const cl_float16 & _v )
799 strm <<
"(float16)(";
800 for(
unsigned int i = 0; i < 16; ++i )
802 strm << std::fixed << std::setprecision( 8 ) << _v.s[ i ];
803 if( i != 15 ) { strm <<
", "; }
std::basic_ostream< charT, traits > & operator<<(std::basic_ostream< charT, traits > &strm, const OpenCLCommandQueue &queue)