| | 393 | template<class Field> |
| | 394 | static void MatVectProd_gen (const Field& F, |
| | 395 | const enum FFLAS_TRANSPOSE TransA, |
| | 396 | const size_t M, const size_t N, |
| | 397 | const typename Field::Element alpha, |
| | 398 | const typename Field::Element * A, const size_t lda, |
| | 399 | const typename Field::Element * X, const size_t incX, |
| | 400 | const typename Field::Element beta, |
| | 401 | typename Field::Element * Y, const size_t incY); |
| | 402 | template<class Field> |
| | 403 | static void MatVectProd_dbl (const Field& F, |
| | 404 | const enum FFLAS_TRANSPOSE TransA, |
| | 405 | const size_t M, const size_t N, |
| | 406 | const double alpha, |
| | 407 | const double * A, const size_t lda, |
| | 408 | const double * X, const size_t incX, |
| | 409 | const double beta, |
| | 410 | double * Y, const size_t incY); |
| | 411 | |
| | 412 | template<class Field> |
| | 413 | static typename Field::Element* fsquare_gen (const Field& F, |
| | 414 | const enum FFLAS_TRANSPOSE ta, |
| | 415 | const size_t n, |
| | 416 | const typename Field::Element alpha, |
| | 417 | const typename Field::Element* A, |
| | 418 | const size_t lda, |
| | 419 | const typename Field::Element beta, |
| | 420 | typename Field::Element* C, |
| | 421 | const size_t ldc); |
| | 422 | template<class Field> |
| | 423 | static double* fsquare_dbl (const Field& F, |
| | 424 | const enum FFLAS_TRANSPOSE ta, |
| | 425 | const size_t n, |
| | 426 | const double alpha, |
| | 427 | const double* A, |
| | 428 | const size_t lda, |
| | 429 | const double beta, |
| | 430 | double* C, |
| | 431 | const size_t ldc); |
| | 444 | template <class Field> |
| | 445 | static void ClassicMatmul_gen (const Field& F, |
| | 446 | const enum FFLAS_TRANSPOSE ta, |
| | 447 | const enum FFLAS_TRANSPOSE tb, |
| | 448 | const size_t m, const size_t n, const size_t k, |
| | 449 | const typename Field::Element alpha, |
| | 450 | const typename Field::Element * A, const size_t lda, |
| | 451 | const typename Field::Element * B, const size_t ldb, |
| | 452 | const typename Field::Element beta, |
| | 453 | typename Field::Element * C, const size_t ldc, |
| | 454 | const size_t kmax ); |
| | 455 | |
| | 456 | template <class Field> |
| | 457 | static void ClassicMatmul_dbl (const Field& F, |
| | 458 | const enum FFLAS_TRANSPOSE ta, |
| | 459 | const enum FFLAS_TRANSPOSE tb, |
| | 460 | const size_t m, const size_t n, const size_t k, |
| | 461 | const double alpha, |
| | 462 | const double * A, const size_t lda, |
| | 463 | const double * B, const size_t ldb, |
| | 464 | const double beta, |
| | 465 | double * C, const size_t ldc, |
| | 466 | const size_t kmax ); |
| 430 | | template<bool AreEq> |
| 431 | | class callWinoMain; |
| 432 | | |
| 433 | | template<bool AreEq> |
| 434 | | class callClassicMatmul; |
| 435 | | |
| 436 | | template<bool AreEq> |
| 437 | | class callFsquare; |
| 438 | | |
| 439 | | template<bool AreEq> |
| 440 | | class callMatVectProd; |
| 441 | | |
| | 493 | template<class Field> |
| | 494 | static void WinoMain_gen (const Field& F, |
| | 495 | const enum FFLAS_TRANSPOSE ta, |
| | 496 | const enum FFLAS_TRANSPOSE tb, |
| | 497 | const size_t m, const size_t n, const size_t k, |
| | 498 | const typename Field::Element alpha, |
| | 499 | const typename Field::Element* A,const size_t lda, |
| | 500 | const typename Field::Element* B,const size_t ldb, |
| | 501 | const typename Field::Element beta, |
| | 502 | typename Field::Element * C, const size_t ldc, |
| | 503 | const size_t kmax, const size_t w); |
| | 504 | |
| | 505 | template<class Field> |
| | 506 | static void WinoMain_dbl (const Field& F, |
| | 507 | const enum FFLAS_TRANSPOSE ta, |
| | 508 | const enum FFLAS_TRANSPOSE tb, |
| | 509 | const size_t m, const size_t n, const size_t k, |
| | 510 | const double alpha, |
| | 511 | const double* A,const size_t lda, |
| | 512 | const double* B,const size_t ldb, |
| | 513 | const double beta, |
| | 514 | double * C, const size_t ldc, |
| | 515 | const size_t kmax, const size_t w); |
| | 516 | |
| 464 | | template<bool AreEq> |
| 465 | | class callFtrsmLeftLowNoTrans; |
| 466 | | |
| 467 | | template<bool AreEq> |
| 468 | | class callFtrsmRightUpNoTrans; |
| 469 | | |
| 470 | | template<bool AreEq> |
| 471 | | class callFtrmmLeftUpNoTrans; |
| 472 | | |
| 473 | | template<bool AreEq> |
| 474 | | class callFtrmmLeftUpTrans; |
| 475 | | |
| 476 | | template<bool AreEq> |
| 477 | | class callFtrmmLeftLowNoTrans; |
| 478 | | |
| 479 | | template<bool AreEq> |
| 480 | | class callFtrmmLeftLowTrans; |
| 481 | | |
| 482 | | template<bool AreEq> |
| 483 | | class callFtrmmRightUpNoTrans; |
| 484 | | |
| 485 | | template<bool AreEq> |
| 486 | | class callFtrmmRightUpTrans; |
| 487 | | |
| 488 | | template<bool AreEq> |
| 489 | | class callFtrmmRightLowNoTrans; |
| 490 | | |
| 491 | | template<bool AreEq> |
| 492 | | class callFtrmmRightLowTrans; |
| 493 | | |
| | 539 | template<class Field> |
| | 540 | static void ftrsmLeftLowNoTrans_dbl (const Field& F, const enum FFLAS_DIAG Diag, |
| | 541 | const size_t M, const size_t N, |
| | 542 | const double alpha, |
| | 543 | double * A, const size_t lda, |
| | 544 | double * B, const size_t ldb, |
| | 545 | const size_t nmax); |
| | 546 | template<class Field> |
| | 547 | static void ftrsmLeftLowNoTrans_gen (const Field& F, const enum FFLAS_DIAG Diag, |
| | 548 | const size_t M, const size_t N, |
| | 549 | const typename Field::Element alpha, |
| | 550 | typename Field::Element * A, const size_t lda, |
| | 551 | typename Field::Element * B, const size_t ldb, |
| | 552 | const size_t nmax); |
| 508 | | |
| | 567 | template<class Field> |
| | 568 | static void ftrsmRightUpNoTrans_dbl (const Field& F, const enum FFLAS_DIAG Diag, |
| | 569 | const size_t M, const size_t N, |
| | 570 | const double alpha, |
| | 571 | double * A, const size_t lda, |
| | 572 | double * B, const size_t ldb, |
| | 573 | const size_t nmax); |
| | 574 | template<class Field> |
| | 575 | static void ftrsmRightUpNoTrans_gen (const Field& F, const enum FFLAS_DIAG Diag, |
| | 576 | const size_t M, const size_t N, |
| | 577 | const typename Field::Element alpha, |
| | 578 | typename Field::Element * A, const size_t lda, |
| | 579 | typename Field::Element * B, const size_t ldb, |
| | 580 | const size_t nmax); |
| | 581 | |
| | 610 | template<class Field> |
| | 611 | static void ftrmmLeftUpNoTrans_gen (const Field& F, const enum FFLAS_DIAG Diag, |
| | 612 | const size_t M, const size_t N, |
| | 613 | const typename Field::Element * A, const size_t lda, |
| | 614 | typename Field::Element * B, const size_t ldb, |
| | 615 | const size_t nmax); |
| | 616 | template<class Field> |
| | 617 | static void ftrmmLeftUpNoTrans_dbl (const Field& F, const enum FFLAS_DIAG Diag, |
| | 618 | const size_t M, const size_t N, |
| | 619 | const double * A, const size_t lda, |
| | 620 | double * B, const size_t ldb, |
| | 621 | const size_t nmax); |
| | 629 | template<class Field> |
| | 630 | static void ftrmmLeftUpTrans_gen (const Field& F, const enum FFLAS_DIAG Diag, |
| | 631 | const size_t M, const size_t N, |
| | 632 | const typename Field::Element * A, const size_t lda, |
| | 633 | typename Field::Element * B, const size_t ldb, |
| | 634 | const size_t nmax); |
| | 635 | template<class Field> |
| | 636 | static void ftrmmLeftUpTrans_dbl (const Field& F, const enum FFLAS_DIAG Diag, |
| | 637 | const size_t M, const size_t N, |
| | 638 | const double * A, const size_t lda, |
| | 639 | double * B, const size_t ldb, |
| | 640 | const size_t nmax); |
| | 648 | template<class Field> |
| | 649 | static void ftrmmLeftLowNoTrans_gen (const Field& F, const enum FFLAS_DIAG Diag, |
| | 650 | const size_t M, const size_t N, |
| | 651 | const typename Field::Element * A, const size_t lda, |
| | 652 | typename Field::Element * B, const size_t ldb, |
| | 653 | const size_t nmax); |
| | 654 | template<class Field> |
| | 655 | static void ftrmmLeftLowNoTrans_dbl (const Field& F, const enum FFLAS_DIAG Diag, |
| | 656 | const size_t M, const size_t N, |
| | 657 | const double * A, const size_t lda, |
| | 658 | double * B, const size_t ldb, |
| | 659 | const size_t nmax); |
| | 667 | template<class Field> |
| | 668 | static void ftrmmLeftLowTrans_gen (const Field& F, const enum FFLAS_DIAG Diag, |
| | 669 | const size_t M, const size_t N, |
| | 670 | const typename Field::Element * A, const size_t lda, |
| | 671 | typename Field::Element * B, const size_t ldb, |
| | 672 | const size_t nmax); |
| | 673 | template<class Field> |
| | 674 | static void ftrmmLeftLowTrans_dbl (const Field& F, const enum FFLAS_DIAG Diag, |
| | 675 | const size_t M, const size_t N, |
| | 676 | const double * A, const size_t lda, |
| | 677 | double * B, const size_t ldb, |
| | 678 | const size_t nmax); |
| | 686 | template<class Field> |
| | 687 | static void ftrmmRightUpNoTrans_gen (const Field& F, const enum FFLAS_DIAG Diag, |
| | 688 | const size_t M, const size_t N, |
| | 689 | const typename Field::Element * A, const size_t lda, |
| | 690 | typename Field::Element * B, const size_t ldb, |
| | 691 | const size_t nmax); |
| | 692 | template<class Field> |
| | 693 | static void ftrmmRightUpNoTrans_dbl (const Field& F, const enum FFLAS_DIAG Diag, |
| | 694 | const size_t M, const size_t N, |
| | 695 | const double * A, const size_t lda, |
| | 696 | double * B, const size_t ldb, |
| | 697 | const size_t nmax); |
| | 705 | template<class Field> |
| | 706 | static void ftrmmRightUpTrans_gen (const Field& F, const enum FFLAS_DIAG Diag, |
| | 707 | const size_t M, const size_t N, |
| | 708 | const typename Field::Element * A, const size_t lda, |
| | 709 | typename Field::Element * B, const size_t ldb, |
| | 710 | const size_t nmax); |
| | 711 | template<class Field> |
| | 712 | static void ftrmmRightUpTrans_dbl (const Field& F, const enum FFLAS_DIAG Diag, |
| | 713 | const size_t M, const size_t N, |
| | 714 | const double * A, const size_t lda, |
| | 715 | double * B, const size_t ldb, |
| | 716 | const size_t nmax); |
| | 725 | static void ftrmmRightLowNoTrans_gen (const Field& F, const enum FFLAS_DIAG Diag, |
| | 726 | const size_t M, const size_t N, |
| | 727 | const typename Field::Element * A, const size_t lda, |
| | 728 | typename Field::Element * B, const size_t ldb, |
| | 729 | const size_t nmax); |
| | 730 | template<class Field> |
| | 731 | static void ftrmmRightLowNoTrans_dbl (const Field& F, const enum FFLAS_DIAG Diag, |
| | 732 | const size_t M, const size_t N, |
| | 733 | const double * A, const size_t lda, |
| | 734 | double * B, const size_t ldb, |
| | 735 | const size_t nmax); |
| | 736 | |
| | 737 | template<class Field> |
| | 743 | template<class Field> |
| | 744 | static void ftrmmRightLowTrans_gen (const Field& F, const enum FFLAS_DIAG Diag, |
| | 745 | const size_t M, const size_t N, |
| | 746 | const typename Field::Element * A, const size_t lda, |
| | 747 | typename Field::Element * B, const size_t ldb, |
| | 748 | const size_t nmax); |
| | 749 | template<class Field> |
| | 750 | static void ftrmmRightLowTrans_dbl (const Field& F, const enum FFLAS_DIAG Diag, |
| | 751 | const size_t M, const size_t N, |
| | 752 | const double * A, const size_t lda, |
| | 753 | double * B, const size_t ldb, |
| | 754 | const size_t nmax); |