35 #ifndef _BLAZE_MATH_TRAITS_MATHTRAIT_H_
36 #define _BLAZE_MATH_TRAITS_MATHTRAIT_H_
135 template<
typename T1,
typename T2 >
142 typedef INVALID_TYPE HighType;
143 typedef INVALID_TYPE LowType;
161 , Helper, Failure >::Type::HighType HighType;
163 typedef typename If< Or< IsConst<T1>, IsVolatile<T1>, IsReference<T1>
164 , IsConst<T2>, IsVolatile<T2>, IsReference<T2> >
165 , Helper, Failure >::Type::LowType LowType;
190 template<
typename T >
195 typedef HighType LowType;
217 #define BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(T1,T2,HIGH,LOW) \
219 struct MathTrait< T1, T2 > \
221 typedef HIGH HighType; \
222 typedef LOW LowType; \
235 #define BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION( T1 ) \
236 template< typename T2 > \
237 struct MathTrait< T1, complex<T2> > \
239 typedef complex<T2> HighType; \
240 typedef T1 LowType; \
242 template< typename T2 > \
243 struct MathTrait< complex<T2>, T1 > \
245 typedef complex<T2> HighType; \
246 typedef T1 LowType; \
263 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
unsigned char ,
unsigned char ,
unsigned char );
264 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
char ,
char ,
unsigned char );
265 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
signed char ,
signed char ,
unsigned char );
266 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
wchar_t ,
wchar_t ,
unsigned char );
267 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
unsigned short,
unsigned short,
unsigned char );
268 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
short ,
short ,
unsigned char );
269 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
unsigned int ,
unsigned int ,
unsigned char );
270 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
int ,
int ,
unsigned char );
271 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
unsigned long ,
unsigned long ,
unsigned char );
272 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
long ,
long ,
unsigned char );
274 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char , std::size_t , std::size_t ,
unsigned char );
275 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char , std::ptrdiff_t, std::ptrdiff_t,
unsigned char );
277 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
float ,
float ,
unsigned char );
278 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
double ,
double ,
unsigned char );
279 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
long double ,
long double ,
unsigned char );
295 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
unsigned char ,
char ,
unsigned char );
296 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
char ,
char ,
char );
297 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
signed char ,
signed char ,
char );
298 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
wchar_t ,
wchar_t ,
char );
299 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
unsigned short,
unsigned short,
char );
300 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
short ,
short ,
char );
301 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
unsigned int ,
unsigned int ,
char );
302 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
int ,
int ,
char );
303 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
unsigned long ,
unsigned long ,
char );
304 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
long ,
long ,
char );
306 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char , std::size_t , std::size_t ,
char );
307 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char , std::ptrdiff_t, std::ptrdiff_t,
char );
309 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
float ,
float ,
char );
310 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
double ,
double ,
char );
311 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
long double ,
long double ,
char );
327 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
unsigned char ,
signed char ,
unsigned char );
328 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
char ,
signed char ,
char );
329 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
signed char ,
signed char ,
signed char );
330 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
wchar_t ,
wchar_t ,
signed char );
331 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
unsigned short,
unsigned short,
signed char );
332 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
short ,
short ,
signed char );
333 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
unsigned int ,
unsigned int ,
signed char );
334 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
int ,
int ,
signed char );
335 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
unsigned long ,
unsigned long ,
signed char );
336 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
long ,
long ,
signed char );
338 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char , std::size_t , std::size_t ,
signed char );
339 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char , std::ptrdiff_t, std::ptrdiff_t,
signed char );
341 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
float ,
float ,
signed char );
342 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
double ,
double ,
signed char );
343 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
long double ,
long double ,
signed char );
359 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
unsigned char ,
wchar_t ,
unsigned char );
360 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
char ,
wchar_t ,
char );
361 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
signed char ,
wchar_t ,
signed char );
362 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
wchar_t ,
wchar_t ,
wchar_t );
363 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
unsigned short,
unsigned short,
wchar_t );
364 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
short ,
short ,
wchar_t );
365 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
unsigned int ,
unsigned int ,
wchar_t );
366 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
int ,
int ,
wchar_t );
367 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
unsigned long ,
unsigned long ,
wchar_t );
368 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
long ,
long ,
wchar_t );
370 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t , std::size_t , std::size_t ,
wchar_t );
371 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t , std::ptrdiff_t, std::ptrdiff_t,
wchar_t );
373 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
float ,
float ,
wchar_t );
374 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
double ,
double ,
wchar_t );
375 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
long double ,
long double ,
wchar_t );
391 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
unsigned char ,
unsigned short,
unsigned char );
392 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
char ,
unsigned short,
char );
393 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
signed char ,
unsigned short,
signed char );
394 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
wchar_t ,
unsigned short,
wchar_t );
395 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
unsigned short,
unsigned short,
unsigned short );
396 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
short ,
short ,
unsigned short );
397 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
unsigned int ,
unsigned int ,
unsigned short );
398 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
int ,
int ,
unsigned short );
399 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
unsigned long ,
unsigned long ,
unsigned short );
400 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
long ,
long ,
unsigned short );
402 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short, std::size_t , std::size_t ,
unsigned short );
403 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short, std::ptrdiff_t, std::ptrdiff_t,
unsigned short );
405 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
float ,
float ,
unsigned short );
406 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
double ,
double ,
unsigned short );
407 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
long double ,
long double ,
unsigned short );
423 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
unsigned char ,
short ,
unsigned char );
424 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
char ,
short ,
char );
425 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
signed char ,
short ,
signed char );
426 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
wchar_t ,
short ,
wchar_t );
427 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
unsigned short,
short ,
unsigned short );
428 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
short ,
short ,
short );
429 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
unsigned int ,
unsigned int ,
short );
430 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
int ,
int ,
short );
431 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
unsigned long ,
unsigned long ,
short );
432 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
long ,
long ,
short );
434 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short , std::size_t , std::size_t ,
short );
435 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short , std::ptrdiff_t, std::ptrdiff_t,
short );
437 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
float ,
float ,
short );
438 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
double ,
double ,
short );
439 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
long double ,
long double ,
short );
455 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
unsigned char ,
unsigned int ,
unsigned char );
456 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
char ,
unsigned int ,
char );
457 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
signed char ,
unsigned int ,
signed char );
458 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
wchar_t ,
unsigned int ,
wchar_t );
459 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
unsigned short,
unsigned int ,
unsigned short );
460 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
short ,
unsigned int ,
short );
461 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
unsigned int ,
unsigned int ,
unsigned int );
462 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
int ,
int ,
unsigned int );
463 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
unsigned long ,
unsigned long ,
unsigned int );
464 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
long ,
long ,
unsigned int );
466 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int , std::size_t , std::size_t ,
unsigned int );
467 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int , std::ptrdiff_t, std::ptrdiff_t,
unsigned int );
469 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
float ,
float ,
unsigned int );
470 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
double ,
double ,
unsigned int );
471 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
long double ,
long double ,
unsigned int );
487 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
unsigned char ,
int ,
unsigned char );
488 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
char ,
int ,
wchar_t );
489 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
signed char ,
int ,
signed char );
490 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
wchar_t ,
int ,
wchar_t );
491 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
unsigned short,
int ,
unsigned short );
492 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
short ,
int ,
short );
493 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
unsigned int ,
int ,
unsigned int );
494 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
int ,
int ,
int );
495 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
unsigned long ,
unsigned long ,
int );
496 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
long ,
long ,
int );
498 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int , std::size_t , std::size_t ,
int );
499 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int , std::ptrdiff_t, std::ptrdiff_t,
int );
501 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
float ,
float ,
int );
502 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
double ,
double ,
int );
503 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
long double ,
long double ,
int );
519 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
unsigned char ,
unsigned long ,
unsigned char );
520 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
char ,
unsigned long ,
char );
521 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
signed char ,
unsigned long ,
signed char );
522 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
wchar_t ,
unsigned long ,
wchar_t );
523 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
unsigned short,
unsigned long ,
unsigned short );
524 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
short ,
unsigned long ,
short );
525 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
unsigned int ,
unsigned long ,
unsigned int );
526 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
int ,
unsigned long ,
int );
527 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
unsigned long ,
unsigned long ,
unsigned long );
528 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
long ,
long ,
unsigned long );
530 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long , std::size_t , std::size_t ,
unsigned long );
531 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long , std::ptrdiff_t, std::ptrdiff_t,
unsigned long );
533 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
float ,
float ,
unsigned long );
534 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
double ,
double ,
unsigned long );
535 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
long double ,
long double ,
unsigned long );
551 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
unsigned char ,
long ,
unsigned char );
552 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
char ,
long ,
char );
553 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
signed char ,
long ,
signed char );
554 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
wchar_t ,
long ,
wchar_t );
555 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
unsigned short,
long ,
unsigned short );
556 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
short ,
long ,
short );
557 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
unsigned int ,
long ,
unsigned int );
558 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
int ,
long ,
int );
559 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
unsigned long ,
long ,
unsigned long );
560 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
long ,
long ,
long );
562 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long , std::size_t , std::size_t ,
long );
563 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long , std::ptrdiff_t, std::ptrdiff_t,
long );
565 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
float ,
float ,
long );
566 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
double ,
double ,
long );
567 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
long double ,
long double ,
long );
584 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
unsigned char , std::size_t ,
unsigned char );
585 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
char , std::size_t ,
char );
586 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
signed char , std::size_t ,
signed char );
587 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
wchar_t , std::size_t ,
wchar_t );
588 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
unsigned short, std::size_t ,
unsigned short );
589 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
short , std::size_t ,
short );
590 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
unsigned int , std::size_t ,
unsigned int );
591 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
int , std::size_t ,
int );
592 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
unsigned long , std::size_t ,
unsigned long );
593 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
long , std::size_t ,
long );
594 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t , std::size_t , std::size_t , std::size_t );
595 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t , std::ptrdiff_t, std::ptrdiff_t, std::size_t );
596 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
float ,
float , std::size_t );
597 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
double ,
double , std::size_t );
598 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
long double ,
long double , std::size_t );
616 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned char , std::ptrdiff_t,
unsigned char );
617 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
char , std::ptrdiff_t,
char );
618 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
signed char , std::ptrdiff_t,
signed char );
619 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
wchar_t , std::ptrdiff_t,
wchar_t );
620 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned short, std::ptrdiff_t,
unsigned short );
621 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
short , std::ptrdiff_t,
short );
622 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned int , std::ptrdiff_t,
unsigned int );
623 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
int , std::ptrdiff_t,
int );
624 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned long , std::ptrdiff_t,
unsigned long );
625 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
long , std::ptrdiff_t,
long );
626 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t, std::size_t , std::ptrdiff_t, std::size_t );
627 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t, std::ptrdiff_t, std::ptrdiff_t, std::ptrdiff_t );
628 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
float ,
float , std::ptrdiff_t );
629 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
double ,
double , std::ptrdiff_t );
630 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
long double ,
long double , std::ptrdiff_t );
647 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
unsigned char ,
float ,
unsigned char );
648 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
char ,
float ,
char );
649 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
signed char ,
float ,
signed char );
650 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
wchar_t ,
float ,
wchar_t );
651 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
unsigned short,
float ,
unsigned short );
652 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
short ,
float ,
short );
653 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
unsigned int ,
float ,
unsigned int );
654 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
int ,
float ,
int );
655 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
unsigned long ,
float ,
unsigned long );
656 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
long ,
float ,
long );
658 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float , std::size_t ,
float , std::size_t );
659 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float , std::ptrdiff_t,
float , std::ptrdiff_t );
661 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
float ,
float ,
float );
662 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
double ,
double ,
float );
663 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
long double ,
long double ,
float );
679 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
unsigned char ,
double ,
unsigned char );
680 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
char ,
double ,
char );
681 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
signed char ,
double ,
signed char );
682 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
wchar_t ,
double ,
wchar_t );
683 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
unsigned short,
double ,
unsigned short );
684 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
short ,
double ,
short );
685 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
unsigned int ,
double ,
unsigned int );
686 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
int ,
double ,
int );
687 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
unsigned long ,
double ,
unsigned long );
688 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
long ,
double ,
long );
690 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double , std::size_t ,
double , std::size_t );
691 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double , std::ptrdiff_t,
double , std::ptrdiff_t );
693 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
float ,
double ,
float );
694 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
double ,
double ,
double );
695 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
long double ,
long double ,
double );
711 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
unsigned char ,
long double ,
unsigned char );
712 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
char ,
long double ,
char );
713 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
signed char ,
long double ,
signed char );
714 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
wchar_t ,
long double ,
wchar_t );
715 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
unsigned short,
long double ,
unsigned short );
716 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
short ,
long double ,
short );
717 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
unsigned int ,
long double ,
unsigned int );
718 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
int ,
long double ,
int );
719 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
unsigned long ,
long double ,
unsigned long );
720 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
long ,
long double ,
long );
722 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double , std::size_t ,
long double , std::size_t );
723 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double , std::ptrdiff_t,
long double , std::ptrdiff_t );
725 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
float ,
long double ,
float );
726 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
double ,
long double ,
double );
727 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
long double ,
long double ,
long double );
742 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
unsigned char );
743 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
char );
744 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
signed char );
745 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
wchar_t );
746 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
unsigned short );
747 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
short );
748 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
unsigned int );
749 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
int );
750 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
unsigned long );
751 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
long );
753 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION( std::size_t );
754 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t );
756 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
float );
757 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
double );
758 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
long double );
765 template<
typename T1,
typename T2 >
766 struct MathTrait< complex<T1>, complex<T2> >
768 typedef complex<typename MathTrait<T1,T2>::HighType> HighType;
769 typedef complex<typename MathTrait<T1,T2>::LowType> LowType;
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.
Base template for the MathTrait class.
Definition: MathTrait.h:136
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.
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.