35 #ifndef _BLAZE_MATH_TRAITS_MULTTRAIT_H_
36 #define _BLAZE_MATH_TRAITS_MULTTRAIT_H_
139 template<
typename T1
146 struct Failure {
typedef INVALID_TYPE Type; };
189 #define BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(T1,T2,RES) \
191 struct MultTrait< T1, T2 > \
206 #define BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION( T1 ) \
207 template< typename T2 > \
208 struct MultTrait< T1, complex<T2> > \
210 typedef complex<T2> Type; \
212 template< typename T2 > \
213 struct MultTrait< complex<T2>, T1 > \
215 typedef complex<T2> Type; \
231 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
unsigned char ,
unsigned char );
232 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
char ,
char );
233 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
signed char ,
signed char );
234 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
wchar_t ,
wchar_t );
235 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
unsigned short,
unsigned short );
236 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
short ,
short );
237 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
unsigned int ,
unsigned int );
238 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
int ,
int );
239 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
unsigned long ,
unsigned long );
240 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
long ,
long );
242 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char , std::size_t , std::size_t );
243 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char , std::ptrdiff_t, std::ptrdiff_t );
245 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
float ,
float );
246 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
double ,
double );
247 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
long double ,
long double );
262 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
unsigned char ,
char );
263 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
char ,
char );
264 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
signed char ,
signed char );
265 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
wchar_t ,
wchar_t );
266 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
unsigned short,
unsigned short );
267 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
short ,
short );
268 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
unsigned int ,
unsigned int );
269 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
int ,
int );
270 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
unsigned long ,
unsigned long );
271 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
long ,
long );
273 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char , std::size_t , std::size_t );
274 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char , std::ptrdiff_t, std::ptrdiff_t );
276 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
float ,
float );
277 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
double ,
double );
278 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
long double ,
long double );
293 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
unsigned char ,
signed char );
294 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
char ,
signed char );
295 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
signed char ,
signed char );
296 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
wchar_t ,
wchar_t );
297 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
unsigned short,
unsigned short );
298 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
short ,
short );
299 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
unsigned int ,
unsigned int );
300 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
int ,
int );
301 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
unsigned long ,
unsigned long );
302 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
long ,
long );
304 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char , std::size_t , std::size_t );
305 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char , std::ptrdiff_t, std::ptrdiff_t );
307 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
float ,
float );
308 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
double ,
double );
309 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
long double ,
long double );
324 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
unsigned char ,
wchar_t );
325 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
char ,
wchar_t );
326 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
signed char ,
wchar_t );
327 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
wchar_t ,
wchar_t );
328 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
unsigned short,
unsigned short );
329 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
short ,
short );
330 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
unsigned int ,
unsigned int );
331 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
int ,
int );
332 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
unsigned long ,
unsigned long );
333 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
long ,
long );
335 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t , std::size_t , std::size_t );
336 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t , std::ptrdiff_t, std::ptrdiff_t );
338 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
float ,
float );
339 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
double ,
double );
340 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
long double ,
long double );
355 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
unsigned char ,
unsigned short );
356 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
char ,
unsigned short );
357 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
signed char ,
unsigned short );
358 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
wchar_t ,
unsigned short );
359 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
unsigned short,
unsigned short );
360 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
short ,
short );
361 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
unsigned int ,
unsigned int );
362 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
int ,
int );
363 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
unsigned long ,
unsigned long );
364 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
long ,
long );
366 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short, std::size_t , std::size_t );
367 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short, std::ptrdiff_t, std::ptrdiff_t );
369 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
float ,
float );
370 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
double ,
double );
371 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
long double ,
long double );
386 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
unsigned char ,
short );
387 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
char ,
short );
388 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
signed char ,
short );
389 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
wchar_t ,
short );
390 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
unsigned short,
short );
391 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
short ,
short );
392 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
unsigned int ,
unsigned int );
393 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
int ,
int );
394 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
unsigned long ,
unsigned long );
395 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
long ,
long );
397 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short , std::size_t , std::size_t );
398 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short , std::ptrdiff_t, std::ptrdiff_t );
400 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
float ,
float );
401 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
double ,
double );
402 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
long double ,
long double );
417 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
unsigned char ,
unsigned int );
418 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
char ,
unsigned int );
419 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
signed char ,
unsigned int );
420 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
wchar_t ,
unsigned int );
421 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
unsigned short,
unsigned int );
422 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
short ,
unsigned int );
423 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
unsigned int ,
unsigned int );
424 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
int ,
int );
425 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
unsigned long ,
unsigned long );
426 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
long ,
long );
428 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int , std::size_t , std::size_t );
429 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int , std::ptrdiff_t, std::ptrdiff_t );
431 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
float ,
float );
432 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
double ,
double );
433 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
long double ,
long double );
448 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
unsigned char ,
int );
449 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
char ,
int );
450 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
signed char ,
int );
451 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
wchar_t ,
int );
452 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
unsigned short,
int );
453 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
short ,
int );
454 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
unsigned int ,
int );
455 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
int ,
int );
456 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
unsigned long ,
unsigned long );
457 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
long ,
long );
459 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int , std::size_t , std::size_t );
460 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int , std::ptrdiff_t, std::ptrdiff_t );
462 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
float ,
float );
463 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
double ,
double );
464 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
long double ,
long double );
479 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
unsigned char ,
unsigned long );
480 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
char ,
unsigned long );
481 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
signed char ,
unsigned long );
482 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
wchar_t ,
unsigned long );
483 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
unsigned short,
unsigned long );
484 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
short ,
unsigned long );
485 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
unsigned int ,
unsigned long );
486 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
int ,
unsigned long );
487 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
unsigned long ,
unsigned long );
488 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
long ,
long );
490 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long , std::size_t , std::size_t );
491 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long , std::ptrdiff_t, std::ptrdiff_t );
493 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
float ,
float );
494 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
double ,
double );
495 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
long double ,
long double );
510 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
unsigned char ,
long );
511 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
char ,
long );
512 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
signed char ,
long );
513 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
wchar_t ,
long );
514 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
unsigned short,
long );
515 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
short ,
long );
516 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
unsigned int ,
long );
517 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
int ,
long );
518 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
unsigned long ,
long );
519 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
long ,
long );
521 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long , std::size_t , std::size_t );
522 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long , std::ptrdiff_t, std::ptrdiff_t );
524 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
float ,
float );
525 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
double ,
double );
526 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
long double ,
long double );
542 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
unsigned char , std::size_t );
543 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
char , std::size_t );
544 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
signed char , std::size_t );
545 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
wchar_t , std::size_t );
546 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
unsigned short, std::size_t );
547 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
short , std::size_t );
548 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
unsigned int , std::size_t );
549 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
int , std::size_t );
550 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
unsigned long , std::size_t );
551 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
long , std::size_t );
552 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t , std::size_t , std::size_t );
553 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t , std::ptrdiff_t, std::ptrdiff_t );
554 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
float ,
float );
555 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
double ,
double );
556 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
long double ,
long double );
573 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned char , std::ptrdiff_t );
574 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
char , std::ptrdiff_t );
575 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
signed char , std::ptrdiff_t );
576 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
wchar_t , std::ptrdiff_t );
577 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned short, std::ptrdiff_t );
578 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
short , std::ptrdiff_t );
579 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned int , std::ptrdiff_t );
580 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
int , std::ptrdiff_t );
581 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned long , std::ptrdiff_t );
582 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
long , std::ptrdiff_t );
583 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t, std::size_t , std::ptrdiff_t );
584 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t, std::ptrdiff_t, std::ptrdiff_t );
585 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
float ,
float );
586 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
double ,
double );
587 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
long double ,
long double );
603 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
unsigned char ,
float );
604 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
char ,
float );
605 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
signed char ,
float );
606 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
wchar_t ,
float );
607 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
unsigned short,
float );
608 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
short ,
float );
609 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
unsigned int ,
float );
610 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
int ,
float );
611 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
unsigned long ,
float );
612 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
long ,
float );
614 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float , std::size_t ,
float );
615 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float , std::ptrdiff_t,
float );
617 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
float ,
float );
618 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
double ,
double );
619 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
long double ,
long double );
634 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
unsigned char ,
double );
635 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
char ,
double );
636 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
signed char ,
double );
637 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
wchar_t ,
double );
638 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
unsigned short,
double );
639 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
short ,
double );
640 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
unsigned int ,
double );
641 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
int ,
double );
642 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
unsigned long ,
double );
643 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
long ,
double );
645 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double , std::size_t ,
double );
646 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double , std::ptrdiff_t,
double );
648 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
float ,
double );
649 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
double ,
double );
650 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
long double ,
long double );
665 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
unsigned char ,
long double );
666 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
char ,
long double );
667 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
signed char ,
long double );
668 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
wchar_t ,
long double );
669 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
unsigned short,
long double );
670 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
short ,
long double );
671 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
unsigned int ,
long double );
672 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
int ,
long double );
673 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
unsigned long ,
long double );
674 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
long ,
long double );
676 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double , std::size_t ,
long double );
677 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double , std::ptrdiff_t,
long double );
679 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
float ,
long double );
680 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
double ,
long double );
681 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
long double ,
long double );
696 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
unsigned char );
697 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
char );
698 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
signed char );
699 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
wchar_t );
700 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
unsigned short );
701 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
short );
702 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
unsigned int );
703 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
int );
704 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
unsigned long );
705 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
long );
707 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION( std::size_t );
708 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t );
710 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
float );
711 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
double );
712 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
long double );
719 template<
typename T1,
typename T2 >
720 struct MultTrait< complex<T1>, complex<T2> >
722 typedef complex<typename MultTrait<T1,T2>::Type> Type;
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.
Compile time type selection.The SelectType class template selects one of the two given types T1 and T...
Definition: SelectType.h:59
Header file for the SelectType 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.
Base template for the MultTrait class.
Definition: MultTrait.h:141
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.