35 #ifndef _BLAZE_MATH_TRAITS_MATHTRAIT_H_
36 #define _BLAZE_MATH_TRAITS_MATHTRAIT_H_
134 template<
typename T1,
typename T2 >
141 using HighType = INVALID_TYPE;
142 using LowType = INVALID_TYPE;
159 , Failure >::HighType;
162 , IsConst<T2>, IsVolatile<T2>, IsReference<T2> >
164 , Failure >::LowType;
189 template<
typename T >
194 using LowType = HighType;
216 #define BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(T1,T2,HIGH,LOW) \
218 struct MathTrait< T1, T2 > \
220 using HighType = HIGH; \
221 using LowType = LOW; \
234 #define BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION( T1 ) \
235 template< typename T2 > \
236 struct MathTrait< T1, complex<T2> > \
238 using HighType = complex<T2>; \
239 using LowType = T1; \
241 template< typename T2 > \
242 struct MathTrait< complex<T2>, T1 > \
244 using HighType = complex<T2>; \
245 using LowType = T1; \
262 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
unsigned char ,
unsigned char ,
unsigned char );
263 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
char ,
char ,
unsigned char );
264 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
signed char ,
signed char ,
unsigned char );
265 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
wchar_t ,
wchar_t ,
unsigned char );
266 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
unsigned short,
unsigned short,
unsigned char );
267 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
short ,
short ,
unsigned char );
268 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
unsigned int ,
unsigned int ,
unsigned char );
269 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
int ,
int ,
unsigned char );
270 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
unsigned long ,
unsigned long ,
unsigned char );
271 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
long ,
long ,
unsigned char );
273 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char , std::size_t , std::size_t ,
unsigned char );
274 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char , std::ptrdiff_t, std::ptrdiff_t,
unsigned char );
276 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
float ,
float ,
unsigned char );
277 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
double ,
double ,
unsigned char );
278 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned char ,
long double ,
long double ,
unsigned char );
294 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
unsigned char ,
char ,
unsigned char );
295 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
char ,
char ,
char );
296 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
signed char ,
signed char ,
char );
297 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
wchar_t ,
wchar_t ,
char );
298 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
unsigned short,
unsigned short,
char );
299 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
short ,
short ,
char );
300 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
unsigned int ,
unsigned int ,
char );
301 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
int ,
int ,
char );
302 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
unsigned long ,
unsigned long ,
char );
303 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
long ,
long ,
char );
305 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char , std::size_t , std::size_t ,
char );
306 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char , std::ptrdiff_t, std::ptrdiff_t,
char );
308 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
float ,
float ,
char );
309 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
double ,
double ,
char );
310 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
char ,
long double ,
long double ,
char );
326 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
unsigned char ,
signed char ,
unsigned char );
327 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
char ,
signed char ,
char );
328 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
signed char ,
signed char ,
signed char );
329 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
wchar_t ,
wchar_t ,
signed char );
330 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
unsigned short,
unsigned short,
signed char );
331 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
short ,
short ,
signed char );
332 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
unsigned int ,
unsigned int ,
signed char );
333 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
int ,
int ,
signed char );
334 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
unsigned long ,
unsigned long ,
signed char );
335 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
long ,
long ,
signed char );
337 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char , std::size_t , std::size_t ,
signed char );
338 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char , std::ptrdiff_t, std::ptrdiff_t,
signed char );
340 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
float ,
float ,
signed char );
341 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
double ,
double ,
signed char );
342 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
signed char ,
long double ,
long double ,
signed char );
358 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
unsigned char ,
wchar_t ,
unsigned char );
359 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
char ,
wchar_t ,
char );
360 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
signed char ,
wchar_t ,
signed char );
361 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
wchar_t ,
wchar_t ,
wchar_t );
362 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
unsigned short,
unsigned short,
wchar_t );
363 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
short ,
short ,
wchar_t );
364 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
unsigned int ,
unsigned int ,
wchar_t );
365 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
int ,
int ,
wchar_t );
366 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
unsigned long ,
unsigned long ,
wchar_t );
367 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
long ,
long ,
wchar_t );
369 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t , std::size_t , std::size_t ,
wchar_t );
370 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t , std::ptrdiff_t, std::ptrdiff_t,
wchar_t );
372 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
float ,
float ,
wchar_t );
373 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
double ,
double ,
wchar_t );
374 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
wchar_t ,
long double ,
long double ,
wchar_t );
390 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
unsigned char ,
unsigned short,
unsigned char );
391 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
char ,
unsigned short,
char );
392 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
signed char ,
unsigned short,
signed char );
393 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
wchar_t ,
unsigned short,
wchar_t );
394 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
unsigned short,
unsigned short,
unsigned short );
395 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
short ,
short ,
unsigned short );
396 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
unsigned int ,
unsigned int ,
unsigned short );
397 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
int ,
int ,
unsigned short );
398 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
unsigned long ,
unsigned long ,
unsigned short );
399 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
long ,
long ,
unsigned short );
401 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short, std::size_t , std::size_t ,
unsigned short );
402 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short, std::ptrdiff_t, std::ptrdiff_t,
unsigned short );
404 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
float ,
float ,
unsigned short );
405 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
double ,
double ,
unsigned short );
406 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned short,
long double ,
long double ,
unsigned short );
422 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
unsigned char ,
short ,
unsigned char );
423 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
char ,
short ,
char );
424 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
signed char ,
short ,
signed char );
425 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
wchar_t ,
short ,
wchar_t );
426 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
unsigned short,
short ,
unsigned short );
427 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
short ,
short ,
short );
428 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
unsigned int ,
unsigned int ,
short );
429 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
int ,
int ,
short );
430 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
unsigned long ,
unsigned long ,
short );
431 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
long ,
long ,
short );
433 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short , std::size_t , std::size_t ,
short );
434 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short , std::ptrdiff_t, std::ptrdiff_t,
short );
436 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
float ,
float ,
short );
437 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
double ,
double ,
short );
438 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
short ,
long double ,
long double ,
short );
454 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
unsigned char ,
unsigned int ,
unsigned char );
455 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
char ,
unsigned int ,
char );
456 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
signed char ,
unsigned int ,
signed char );
457 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
wchar_t ,
unsigned int ,
wchar_t );
458 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
unsigned short,
unsigned int ,
unsigned short );
459 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
short ,
unsigned int ,
short );
460 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
unsigned int ,
unsigned int ,
unsigned int );
461 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
int ,
int ,
unsigned int );
462 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
unsigned long ,
unsigned long ,
unsigned int );
463 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
long ,
long ,
unsigned int );
465 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int , std::size_t , std::size_t ,
unsigned int );
466 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int , std::ptrdiff_t, std::ptrdiff_t,
unsigned int );
468 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
float ,
float ,
unsigned int );
469 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
double ,
double ,
unsigned int );
470 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned int ,
long double ,
long double ,
unsigned int );
486 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
unsigned char ,
int ,
unsigned char );
487 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
char ,
int ,
wchar_t );
488 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
signed char ,
int ,
signed char );
489 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
wchar_t ,
int ,
wchar_t );
490 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
unsigned short,
int ,
unsigned short );
491 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
short ,
int ,
short );
492 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
unsigned int ,
int ,
unsigned int );
493 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
int ,
int ,
int );
494 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
unsigned long ,
unsigned long ,
int );
495 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
long ,
long ,
int );
497 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int , std::size_t , std::size_t ,
int );
498 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int , std::ptrdiff_t, std::ptrdiff_t,
int );
500 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
float ,
float ,
int );
501 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
double ,
double ,
int );
502 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
int ,
long double ,
long double ,
int );
518 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
unsigned char ,
unsigned long ,
unsigned char );
519 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
char ,
unsigned long ,
char );
520 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
signed char ,
unsigned long ,
signed char );
521 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
wchar_t ,
unsigned long ,
wchar_t );
522 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
unsigned short,
unsigned long ,
unsigned short );
523 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
short ,
unsigned long ,
short );
524 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
unsigned int ,
unsigned long ,
unsigned int );
525 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
int ,
unsigned long ,
int );
526 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
unsigned long ,
unsigned long ,
unsigned long );
527 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
long ,
long ,
unsigned long );
529 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long , std::size_t , std::size_t ,
unsigned long );
530 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long , std::ptrdiff_t, std::ptrdiff_t,
unsigned long );
532 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
float ,
float ,
unsigned long );
533 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
double ,
double ,
unsigned long );
534 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
unsigned long ,
long double ,
long double ,
unsigned long );
550 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
unsigned char ,
long ,
unsigned char );
551 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
char ,
long ,
char );
552 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
signed char ,
long ,
signed char );
553 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
wchar_t ,
long ,
wchar_t );
554 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
unsigned short,
long ,
unsigned short );
555 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
short ,
long ,
short );
556 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
unsigned int ,
long ,
unsigned int );
557 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
int ,
long ,
int );
558 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
unsigned long ,
long ,
unsigned long );
559 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
long ,
long ,
long );
561 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long , std::size_t , std::size_t ,
long );
562 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long , std::ptrdiff_t, std::ptrdiff_t,
long );
564 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
float ,
float ,
long );
565 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
double ,
double ,
long );
566 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long ,
long double ,
long double ,
long );
583 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
unsigned char , std::size_t ,
unsigned char );
584 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
char , std::size_t ,
char );
585 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
signed char , std::size_t ,
signed char );
586 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
wchar_t , std::size_t ,
wchar_t );
587 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
unsigned short, std::size_t ,
unsigned short );
588 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
short , std::size_t ,
short );
589 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
unsigned int , std::size_t ,
unsigned int );
590 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
int , std::size_t ,
int );
591 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
unsigned long , std::size_t ,
unsigned long );
592 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
long , std::size_t ,
long );
593 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t , std::size_t , std::size_t , std::size_t );
594 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t , std::ptrdiff_t, std::ptrdiff_t, std::size_t );
595 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
float ,
float , std::size_t );
596 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
double ,
double , std::size_t );
597 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::size_t ,
long double ,
long double , std::size_t );
615 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned char , std::ptrdiff_t,
unsigned char );
616 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
char , std::ptrdiff_t,
char );
617 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
signed char , std::ptrdiff_t,
signed char );
618 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
wchar_t , std::ptrdiff_t,
wchar_t );
619 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned short, std::ptrdiff_t,
unsigned short );
620 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
short , std::ptrdiff_t,
short );
621 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned int , std::ptrdiff_t,
unsigned int );
622 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
int , std::ptrdiff_t,
int );
623 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
unsigned long , std::ptrdiff_t,
unsigned long );
624 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
long , std::ptrdiff_t,
long );
625 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t, std::size_t , std::ptrdiff_t, std::size_t );
626 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t, std::ptrdiff_t, std::ptrdiff_t, std::ptrdiff_t );
627 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
float ,
float , std::ptrdiff_t );
628 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
double ,
double , std::ptrdiff_t );
629 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t,
long double ,
long double , std::ptrdiff_t );
646 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
unsigned char ,
float ,
unsigned char );
647 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
char ,
float ,
char );
648 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
signed char ,
float ,
signed char );
649 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
wchar_t ,
float ,
wchar_t );
650 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
unsigned short,
float ,
unsigned short );
651 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
short ,
float ,
short );
652 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
unsigned int ,
float ,
unsigned int );
653 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
int ,
float ,
int );
654 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
unsigned long ,
float ,
unsigned long );
655 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
long ,
float ,
long );
657 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float , std::size_t ,
float , std::size_t );
658 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float , std::ptrdiff_t,
float , std::ptrdiff_t );
660 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
float ,
float ,
float );
661 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
double ,
double ,
float );
662 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
float ,
long double ,
long double ,
float );
678 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
unsigned char ,
double ,
unsigned char );
679 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
char ,
double ,
char );
680 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
signed char ,
double ,
signed char );
681 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
wchar_t ,
double ,
wchar_t );
682 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
unsigned short,
double ,
unsigned short );
683 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
short ,
double ,
short );
684 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
unsigned int ,
double ,
unsigned int );
685 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
int ,
double ,
int );
686 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
unsigned long ,
double ,
unsigned long );
687 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
long ,
double ,
long );
689 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double , std::size_t ,
double , std::size_t );
690 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double , std::ptrdiff_t,
double , std::ptrdiff_t );
692 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
float ,
double ,
float );
693 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
double ,
double ,
double );
694 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
double ,
long double ,
long double ,
double );
710 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
unsigned char ,
long double ,
unsigned char );
711 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
char ,
long double ,
char );
712 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
signed char ,
long double ,
signed char );
713 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
wchar_t ,
long double ,
wchar_t );
714 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
unsigned short,
long double ,
unsigned short );
715 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
short ,
long double ,
short );
716 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
unsigned int ,
long double ,
unsigned int );
717 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
int ,
long double ,
int );
718 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
unsigned long ,
long double ,
unsigned long );
719 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
long ,
long double ,
long );
721 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double , std::size_t ,
long double , std::size_t );
722 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double , std::ptrdiff_t,
long double , std::ptrdiff_t );
724 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
float ,
long double ,
float );
725 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
double ,
long double ,
double );
726 BLAZE_CREATE_BUILTIN_MATHTRAIT_SPECIALIZATION(
long double ,
long double ,
long double ,
long double );
741 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
unsigned char );
742 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
char );
743 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
signed char );
744 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
wchar_t );
745 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
unsigned short );
746 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
short );
747 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
unsigned int );
748 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
int );
749 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
unsigned long );
750 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
long );
752 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION( std::size_t );
753 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION( std::ptrdiff_t );
755 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
float );
756 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
double );
757 BLAZE_CREATE_COMPLEX_MATHTRAIT_SPECIALIZATION(
long double );
764 template<
typename T1,
typename T2 >
765 struct MathTrait< complex<T1>, complex<T2> >
767 using HighType = complex<typename MathTrait<T1,T2>::HighType>;
768 using LowType = complex<typename MathTrait<T1,T2>::LowType>;
Compile time check for volatile data types.The IsVolatile type trait tests whether or not the given t...
Definition: IsVolatile.h:75
typename Decay< T >::Type Decay_
Auxiliary alias declaration for the Decay type trait.The Decay_ alias declaration provides a convenie...
Definition: Decay.h:98
Header file for the IsVolatile type trait.
Base template for the MathTrait class.
Definition: MathTrait.h:135
Header file for the Decay 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.
Header file for the IsConst type trait.
Utility type for generic codes.
typename If< T1, T2, T3 >::Type If_
Auxiliary alias declaration for the If class template.The If_ alias declaration provides a convenient...
Definition: If.h:160
Header file for the IsReference type trait.
Compile time check for constant data types.The IsConst type trait tests whether or not the given temp...
Definition: IsConst.h:75
Compile time type check.This class tests whether the given template parameter T is a reference type (...
Definition: IsReference.h:75
Header file for the complex data type.