35 #ifndef _BLAZE_MATH_TRAITS_MULTTRAIT_H_
36 #define _BLAZE_MATH_TRAITS_MULTTRAIT_H_
148 template<
typename T1
155 struct Failure {
typedef INVALID_TYPE Type; };
193 #define BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(T1,T2,RES) \
195 struct MultTrait< T1, T2 > \
210 #define BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION( T1 ) \
211 template< typename T2 > \
212 struct MultTrait< T1, complex<T2> > \
214 typedef complex<T2> Type; \
216 template< typename T2 > \
217 struct MultTrait< complex<T2>, T1 > \
219 typedef complex<T2> Type; \
235 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
unsigned char ,
unsigned char );
236 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
char ,
char );
237 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
signed char ,
signed char );
238 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
wchar_t ,
wchar_t );
239 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
unsigned short,
unsigned short );
240 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
short ,
short );
241 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
unsigned int ,
unsigned int );
242 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
int ,
int );
243 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
unsigned long ,
unsigned long );
244 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
long ,
long );
246 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char , std::size_t , std::size_t );
247 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char , std::ptrdiff_t, std::ptrdiff_t );
249 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
float ,
float );
250 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
double ,
double );
251 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned char ,
long double ,
long double );
266 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
unsigned char ,
char );
267 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
char ,
char );
268 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
signed char ,
signed char );
269 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
wchar_t ,
wchar_t );
270 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
unsigned short,
unsigned short );
271 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
short ,
short );
272 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
unsigned int ,
unsigned int );
273 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
int ,
int );
274 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
unsigned long ,
unsigned long );
275 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
long ,
long );
277 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char , std::size_t , std::size_t );
278 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char , std::ptrdiff_t, std::ptrdiff_t );
280 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
float ,
float );
281 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
double ,
double );
282 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
char ,
long double ,
long double );
297 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
unsigned char ,
signed char );
298 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
char ,
signed char );
299 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
signed char ,
signed char );
300 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
wchar_t ,
wchar_t );
301 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
unsigned short,
unsigned short );
302 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
short ,
short );
303 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
unsigned int ,
unsigned int );
304 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
int ,
int );
305 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
unsigned long ,
unsigned long );
306 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
long ,
long );
308 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char , std::size_t , std::size_t );
309 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char , std::ptrdiff_t, std::ptrdiff_t );
311 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
float ,
float );
312 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
double ,
double );
313 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
signed char ,
long double ,
long double );
328 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
unsigned char ,
wchar_t );
329 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
char ,
wchar_t );
330 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
signed char ,
wchar_t );
331 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
wchar_t ,
wchar_t );
332 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
unsigned short,
unsigned short );
333 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
short ,
short );
334 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
unsigned int ,
unsigned int );
335 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
int ,
int );
336 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
unsigned long ,
unsigned long );
337 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
long ,
long );
339 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t , std::size_t , std::size_t );
340 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t , std::ptrdiff_t, std::ptrdiff_t );
342 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
float ,
float );
343 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
double ,
double );
344 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
wchar_t ,
long double ,
long double );
359 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
unsigned char ,
unsigned short );
360 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
char ,
unsigned short );
361 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
signed char ,
unsigned short );
362 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
wchar_t ,
unsigned short );
363 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
unsigned short,
unsigned short );
364 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
short ,
short );
365 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
unsigned int ,
unsigned int );
366 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
int ,
int );
367 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
unsigned long ,
unsigned long );
368 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
long ,
long );
370 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short, std::size_t , std::size_t );
371 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short, std::ptrdiff_t, std::ptrdiff_t );
373 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
float ,
float );
374 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
double ,
double );
375 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned short,
long double ,
long double );
390 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
unsigned char ,
short );
391 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
char ,
short );
392 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
signed char ,
short );
393 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
wchar_t ,
short );
394 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
unsigned short,
short );
395 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
short ,
short );
396 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
unsigned int ,
unsigned int );
397 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
int ,
int );
398 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
unsigned long ,
unsigned long );
399 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
long ,
long );
401 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short , std::size_t , std::size_t );
402 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short , std::ptrdiff_t, std::ptrdiff_t );
404 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
float ,
float );
405 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
double ,
double );
406 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
short ,
long double ,
long double );
421 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
unsigned char ,
unsigned int );
422 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
char ,
unsigned int );
423 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
signed char ,
unsigned int );
424 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
wchar_t ,
unsigned int );
425 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
unsigned short,
unsigned int );
426 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
short ,
unsigned int );
427 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
unsigned int ,
unsigned int );
428 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
int ,
int );
429 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
unsigned long ,
unsigned long );
430 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
long ,
long );
432 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int , std::size_t , std::size_t );
433 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int , std::ptrdiff_t, std::ptrdiff_t );
435 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
float ,
float );
436 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
double ,
double );
437 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned int ,
long double ,
long double );
452 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
unsigned char ,
int );
453 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
char ,
int );
454 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
signed char ,
int );
455 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
wchar_t ,
int );
456 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
unsigned short,
int );
457 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
short ,
int );
458 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
unsigned int ,
int );
459 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
int ,
int );
460 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
unsigned long ,
unsigned long );
461 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
long ,
long );
463 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int , std::size_t , std::size_t );
464 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int , std::ptrdiff_t, std::ptrdiff_t );
466 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
float ,
float );
467 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
double ,
double );
468 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
int ,
long double ,
long double );
483 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
unsigned char ,
unsigned long );
484 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
char ,
unsigned long );
485 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
signed char ,
unsigned long );
486 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
wchar_t ,
unsigned long );
487 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
unsigned short,
unsigned long );
488 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
short ,
unsigned long );
489 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
unsigned int ,
unsigned long );
490 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
int ,
unsigned long );
491 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
unsigned long ,
unsigned long );
492 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
long ,
long );
494 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long , std::size_t , std::size_t );
495 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long , std::ptrdiff_t, std::ptrdiff_t );
497 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
float ,
float );
498 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
double ,
double );
499 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
unsigned long ,
long double ,
long double );
514 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
unsigned char ,
long );
515 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
char ,
long );
516 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
signed char ,
long );
517 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
wchar_t ,
long );
518 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
unsigned short,
long );
519 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
short ,
long );
520 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
unsigned int ,
long );
521 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
int ,
long );
522 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
unsigned long ,
long );
523 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
long ,
long );
525 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long , std::size_t , std::size_t );
526 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long , std::ptrdiff_t, std::ptrdiff_t );
528 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
float ,
float );
529 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
double ,
double );
530 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long ,
long double ,
long double );
546 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
unsigned char , std::size_t );
547 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
char , std::size_t );
548 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
signed char , std::size_t );
549 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
wchar_t , std::size_t );
550 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
unsigned short, std::size_t );
551 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
short , std::size_t );
552 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
unsigned int , std::size_t );
553 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
int , std::size_t );
554 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
unsigned long , std::size_t );
555 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
long , std::size_t );
556 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t , std::size_t , std::size_t );
557 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t , std::ptrdiff_t, std::ptrdiff_t );
558 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
float ,
float );
559 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
double ,
double );
560 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::size_t ,
long double ,
long double );
577 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned char , std::ptrdiff_t );
578 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
char , std::ptrdiff_t );
579 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
signed char , std::ptrdiff_t );
580 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
wchar_t , std::ptrdiff_t );
581 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned short, std::ptrdiff_t );
582 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
short , std::ptrdiff_t );
583 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned int , std::ptrdiff_t );
584 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
int , std::ptrdiff_t );
585 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned long , std::ptrdiff_t );
586 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
long , std::ptrdiff_t );
587 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t, std::size_t , std::ptrdiff_t );
588 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t, std::ptrdiff_t, std::ptrdiff_t );
589 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
float ,
float );
590 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
double ,
double );
591 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t,
long double ,
long double );
607 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
unsigned char ,
float );
608 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
char ,
float );
609 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
signed char ,
float );
610 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
wchar_t ,
float );
611 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
unsigned short,
float );
612 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
short ,
float );
613 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
unsigned int ,
float );
614 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
int ,
float );
615 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
unsigned long ,
float );
616 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
long ,
float );
618 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float , std::size_t ,
float );
619 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float , std::ptrdiff_t,
float );
621 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
float ,
float );
622 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
double ,
double );
623 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
float ,
long double ,
long double );
638 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
unsigned char ,
double );
639 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
char ,
double );
640 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
signed char ,
double );
641 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
wchar_t ,
double );
642 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
unsigned short,
double );
643 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
short ,
double );
644 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
unsigned int ,
double );
645 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
int ,
double );
646 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
unsigned long ,
double );
647 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
long ,
double );
649 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double , std::size_t ,
double );
650 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double , std::ptrdiff_t,
double );
652 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
float ,
double );
653 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
double ,
double );
654 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
double ,
long double ,
long double );
669 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
unsigned char ,
long double );
670 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
char ,
long double );
671 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
signed char ,
long double );
672 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
wchar_t ,
long double );
673 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
unsigned short,
long double );
674 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
short ,
long double );
675 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
unsigned int ,
long double );
676 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
int ,
long double );
677 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
unsigned long ,
long double );
678 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
long ,
long double );
680 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double , std::size_t ,
long double );
681 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double , std::ptrdiff_t,
long double );
683 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
float ,
long double );
684 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
double ,
long double );
685 BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(
long double ,
long double ,
long double );
700 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
unsigned char );
701 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
char );
702 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
signed char );
703 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
wchar_t );
704 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
unsigned short );
705 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
short );
706 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
unsigned int );
707 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
int );
708 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
unsigned long );
709 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
long );
711 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION( std::size_t );
712 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION( std::ptrdiff_t );
714 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
float );
715 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
double );
716 BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(
long double );
723 template<
typename T1,
typename T2 >
724 struct MultTrait< complex<T1>, complex<T2> >
726 typedef complex<typename MultTrait<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.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
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.
Base template for the MultTrait class.
Definition: MultTrait.h:150
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.