35 #ifndef _BLAZE_MATH_TRAITS_SUBTRAIT_H_
36 #define _BLAZE_MATH_TRAITS_SUBTRAIT_H_
140 template<
typename T1
147 struct Failure {
typedef INVALID_TYPE Type; };
185 #define BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(T1,T2,RES) \
187 struct SubTrait< T1, T2 > \
202 #define BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION( T1 ) \
203 template< typename T2 > \
204 struct SubTrait< T1, complex<T2> > \
206 typedef complex<typename SubTrait<T1,T2>::Type> Type; \
208 template< typename T2 > \
209 struct SubTrait< complex<T2>, T1 > \
211 typedef complex<typename SubTrait<T2,T1>::Type> Type; \
227 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char ,
unsigned char ,
unsigned char );
228 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char ,
char ,
char );
229 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char ,
signed char ,
signed char );
230 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char ,
wchar_t ,
wchar_t );
231 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char ,
unsigned short,
unsigned short );
232 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char ,
short ,
short );
233 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char ,
unsigned int ,
unsigned int );
234 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char ,
int ,
int );
235 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char ,
unsigned long ,
unsigned long );
236 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char ,
long ,
long );
238 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char , std::size_t , std::size_t );
239 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char , std::ptrdiff_t, std::ptrdiff_t );
241 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char ,
float ,
float );
242 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char ,
double ,
double );
243 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned char ,
long double ,
long double );
258 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char ,
unsigned char ,
char );
259 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char ,
char ,
char );
260 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char ,
signed char ,
signed char );
261 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char ,
wchar_t ,
wchar_t );
262 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char ,
unsigned short,
unsigned short );
263 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char ,
short ,
short );
264 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char ,
unsigned int ,
unsigned int );
265 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char ,
int ,
int );
266 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char ,
unsigned long ,
unsigned long );
267 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char ,
long ,
long );
269 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char , std::size_t , std::size_t );
270 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char , std::ptrdiff_t, std::ptrdiff_t );
272 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char ,
float ,
float );
273 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char ,
double ,
double );
274 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
char ,
long double ,
long double );
289 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char ,
unsigned char ,
signed char );
290 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char ,
char ,
signed char );
291 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char ,
signed char ,
signed char );
292 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char ,
wchar_t ,
wchar_t );
293 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char ,
unsigned short,
unsigned short );
294 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char ,
short ,
short );
295 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char ,
unsigned int ,
unsigned int );
296 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char ,
int ,
int );
297 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char ,
unsigned long ,
unsigned long );
298 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char ,
long ,
long );
300 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char , std::size_t , std::size_t );
301 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char , std::ptrdiff_t, std::ptrdiff_t );
303 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char ,
float ,
float );
304 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char ,
double ,
double );
305 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
signed char ,
long double ,
long double );
320 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t ,
unsigned char ,
wchar_t );
321 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t ,
char ,
wchar_t );
322 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t ,
signed char ,
wchar_t );
323 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t ,
wchar_t ,
wchar_t );
324 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t ,
unsigned short,
unsigned short );
325 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t ,
short ,
short );
326 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t ,
unsigned int ,
unsigned int );
327 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t ,
int ,
int );
328 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t ,
unsigned long ,
unsigned long );
329 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t ,
long ,
long );
331 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t , std::size_t , std::size_t );
332 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t , std::ptrdiff_t, std::ptrdiff_t );
334 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t ,
float ,
float );
335 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t ,
double ,
double );
336 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
wchar_t ,
long double ,
long double );
351 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short,
unsigned char ,
unsigned short );
352 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short,
char ,
unsigned short );
353 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short,
signed char ,
unsigned short );
354 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short,
wchar_t ,
unsigned short );
355 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short,
unsigned short,
unsigned short );
356 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short,
short ,
short );
357 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short,
unsigned int ,
unsigned int );
358 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short,
int ,
int );
359 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short,
unsigned long ,
unsigned long );
360 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short,
long ,
long );
362 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short, std::size_t , std::size_t );
363 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short, std::ptrdiff_t, std::ptrdiff_t );
365 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short,
float ,
float );
366 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short,
double ,
double );
367 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned short,
long double ,
long double );
382 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short ,
unsigned char ,
short );
383 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short ,
char ,
short );
384 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short ,
signed char ,
short );
385 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short ,
wchar_t ,
short );
386 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short ,
unsigned short,
short );
387 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short ,
short ,
short );
388 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short ,
unsigned int ,
unsigned int );
389 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short ,
int ,
int );
390 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short ,
unsigned long ,
unsigned long );
391 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short ,
long ,
long );
393 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short , std::size_t , std::size_t );
394 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short , std::ptrdiff_t, std::ptrdiff_t );
396 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short ,
float ,
float );
397 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short ,
double ,
double );
398 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
short ,
long double ,
long double );
413 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int ,
unsigned char ,
unsigned int );
414 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int ,
char ,
unsigned int );
415 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int ,
signed char ,
unsigned int );
416 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int ,
wchar_t ,
unsigned int );
417 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int ,
unsigned short,
unsigned int );
418 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int ,
short ,
unsigned int );
419 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int ,
unsigned int ,
unsigned int );
420 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int ,
int ,
int );
421 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int ,
unsigned long ,
unsigned long );
422 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int ,
long ,
long );
424 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int , std::size_t , std::size_t );
425 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int , std::ptrdiff_t, std::ptrdiff_t );
427 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int ,
float ,
float );
428 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int ,
double ,
double );
429 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned int ,
long double ,
long double );
444 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int ,
unsigned char ,
int );
445 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int ,
char ,
int );
446 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int ,
signed char ,
int );
447 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int ,
wchar_t ,
int );
448 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int ,
unsigned short,
int );
449 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int ,
short ,
int );
450 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int ,
unsigned int ,
int );
451 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int ,
int ,
int );
452 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int ,
unsigned long ,
unsigned long );
453 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int ,
long ,
long );
455 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int , std::size_t , std::size_t );
456 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int , std::ptrdiff_t, std::ptrdiff_t );
458 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int ,
float ,
float );
459 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int ,
double ,
double );
460 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
int ,
long double ,
long double );
475 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long ,
unsigned char ,
unsigned long );
476 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long ,
char ,
unsigned long );
477 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long ,
signed char ,
unsigned long );
478 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long ,
wchar_t ,
unsigned long );
479 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long ,
unsigned short,
unsigned long );
480 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long ,
short ,
unsigned long );
481 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long ,
unsigned int ,
unsigned long );
482 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long ,
int ,
unsigned long );
483 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long ,
unsigned long ,
unsigned long );
484 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long ,
long ,
long );
486 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long , std::size_t , std::size_t );
487 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long , std::ptrdiff_t, std::ptrdiff_t );
489 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long ,
float ,
float );
490 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long ,
double ,
double );
491 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
unsigned long ,
long double ,
long double );
506 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long ,
unsigned char ,
long );
507 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long ,
char ,
long );
508 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long ,
signed char ,
long );
509 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long ,
wchar_t ,
long );
510 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long ,
unsigned short,
long );
511 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long ,
short ,
long );
512 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long ,
unsigned int ,
long );
513 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long ,
int ,
long );
514 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long ,
unsigned long ,
long );
515 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long ,
long ,
long );
517 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long , std::size_t , std::size_t );
518 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long , std::ptrdiff_t, std::ptrdiff_t );
520 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long ,
float ,
float );
521 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long ,
double ,
double );
522 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long ,
long double ,
long double );
538 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t ,
unsigned char , std::size_t );
539 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t ,
char , std::size_t );
540 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t ,
signed char , std::size_t );
541 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t ,
wchar_t , std::size_t );
542 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t ,
unsigned short, std::size_t );
543 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t ,
short , std::size_t );
544 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t ,
unsigned int , std::size_t );
545 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t ,
int , std::size_t );
546 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t ,
unsigned long , std::size_t );
547 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t ,
long , std::size_t );
548 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t , std::size_t , std::size_t );
549 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t , std::ptrdiff_t, std::ptrdiff_t );
550 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t ,
float ,
float );
551 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t ,
double ,
double );
552 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::size_t ,
long double ,
long double );
569 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned char , std::ptrdiff_t );
570 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t,
char , std::ptrdiff_t );
571 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t,
signed char , std::ptrdiff_t );
572 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t,
wchar_t , std::ptrdiff_t );
573 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned short, std::ptrdiff_t );
574 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t,
short , std::ptrdiff_t );
575 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned int , std::ptrdiff_t );
576 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t,
int , std::ptrdiff_t );
577 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned long , std::ptrdiff_t );
578 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t,
long , std::ptrdiff_t );
579 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t, std::size_t , std::ptrdiff_t );
580 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t, std::ptrdiff_t, std::ptrdiff_t );
581 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t,
float ,
float );
582 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t,
double ,
double );
583 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t,
long double ,
long double );
599 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float ,
unsigned char ,
float );
600 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float ,
char ,
float );
601 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float ,
signed char ,
float );
602 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float ,
wchar_t ,
float );
603 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float ,
unsigned short,
float );
604 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float ,
short ,
float );
605 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float ,
unsigned int ,
float );
606 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float ,
int ,
float );
607 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float ,
unsigned long ,
float );
608 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float ,
long ,
float );
610 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float , std::size_t ,
float );
611 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float , std::ptrdiff_t,
float );
613 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float ,
float ,
float );
614 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float ,
double ,
double );
615 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
float ,
long double ,
long double );
630 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double ,
unsigned char ,
double );
631 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double ,
char ,
double );
632 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double ,
signed char ,
double );
633 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double ,
wchar_t ,
double );
634 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double ,
unsigned short,
double );
635 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double ,
short ,
double );
636 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double ,
unsigned int ,
double );
637 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double ,
int ,
double );
638 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double ,
unsigned long ,
double );
639 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double ,
long ,
double );
641 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double , std::size_t ,
double );
642 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double , std::ptrdiff_t,
double );
644 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double ,
float ,
double );
645 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double ,
double ,
double );
646 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
double ,
long double ,
long double );
661 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double ,
unsigned char ,
long double );
662 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double ,
char ,
long double );
663 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double ,
signed char ,
long double );
664 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double ,
wchar_t ,
long double );
665 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double ,
unsigned short,
long double );
666 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double ,
short ,
long double );
667 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double ,
unsigned int ,
long double );
668 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double ,
int ,
long double );
669 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double ,
unsigned long ,
long double );
670 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double ,
long ,
long double );
672 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double , std::size_t ,
long double );
673 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double , std::ptrdiff_t,
long double );
675 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double ,
float ,
long double );
676 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double ,
double ,
long double );
677 BLAZE_CREATE_BUILTIN_SUBTRAIT_SPECIALIZATION(
long double ,
long double ,
long double );
692 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION(
unsigned char );
693 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION(
char );
694 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION(
signed char );
695 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION(
wchar_t );
696 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION(
unsigned short );
697 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION(
short );
698 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION(
unsigned int );
699 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION(
int );
700 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION(
unsigned long );
701 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION(
long );
703 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION( std::size_t );
704 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION( std::ptrdiff_t );
706 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION(
float );
707 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION(
double );
708 BLAZE_CREATE_COMPLEX_SUBTRAIT_SPECIALIZATION(
long double );
715 template<
typename T1,
typename T2 >
716 struct SubTrait< complex<T1>, complex<T2> >
718 typedef complex<typename SubTrait<T1,T2>::Type> Type;
Compile time type selection.The If class template selects one of the two given types T2 and T3 depend...
Definition: If.h:112
Compile time check for volatile data types.The IsVolatile type trait tests whether or not the given t...
Definition: IsVolatile.h:94
Header file for the RemoveCV type trait.
Header file for the IsVolatile type trait.
Header file for the If class template.
Header file for the Or class template.
Removal of reference modifiers.The RemoveCV type trait removes any reference modifiers from the given...
Definition: RemoveReference.h:69
Header file for the IsConst type trait.
Utility type for generic codes.
Header file for the IsReference type trait.
Header file for the RemoveReference type trait.
Compile time check for constant data types.The IsConst type trait tests whether or not the given temp...
Definition: IsConst.h:94
Compile time type check.This class tests whether the given template parameter T is a reference type (...
Definition: IsReference.h:94
Header file for the complex data type.
Base template for the SubTrait class.
Definition: SubTrait.h:142