GEMM kernel -- ALGLIB routine -- 16.12.2009 Bochkanov Sergey *************************************************************************/
| 2684 | Bochkanov Sergey |
| 2685 | *************************************************************************/ |
| 2686 | static void cmatrixgemmk(int m, |
| 2687 | int n, |
| 2688 | int k, |
| 2689 | ap::complex alpha, |
| 2690 | const ap::complex_2d_array& a, |
| 2691 | int ia, |
| 2692 | int ja, |
| 2693 | int optypea, |
| 2694 | const ap::complex_2d_array& b, |
| 2695 | int ib, |
| 2696 | int jb, |
| 2697 | int optypeb, |
| 2698 | ap::complex beta, |
| 2699 | ap::complex_2d_array& c, |
| 2700 | int ic, |
| 2701 | int jc) |
| 2702 | { |
| 2703 | int i; |
| 2704 | int j; |
| 2705 | ap::complex v; |
| 2706 | |
| 2707 | |
| 2708 | // |
| 2709 | // Special case |
| 2710 | // |
| 2711 | if( m*n==0 ) |
| 2712 | { |
| 2713 | return; |
| 2714 | } |
| 2715 | |
| 2716 | // |
| 2717 | // Try optimized code |
| 2718 | // |
| 2719 | if( cmatrixgemmf(m, n, k, alpha, a, ia, ja, optypea, b, ib, jb, optypeb, beta, c, ic, jc) ) |
| 2720 | { |
| 2721 | return; |
| 2722 | } |
| 2723 | |
| 2724 | // |
| 2725 | // Another special case |
| 2726 | // |
| 2727 | if( k==0 ) |
| 2728 | { |
| 2729 | if( beta!=0 ) |
| 2730 | { |
| 2731 | for(i = 0; i <= m-1; i++) |
| 2732 | { |
| 2733 | for(j = 0; j <= n-1; j++) |
| 2734 | { |
| 2735 | c(ic+i,jc+j) = beta*c(ic+i,jc+j); |
| 2736 | } |
| 2737 | } |
| 2738 | } |
| 2739 | else |
| 2740 | { |
| 2741 | for(i = 0; i <= m-1; i++) |
| 2742 | { |
| 2743 | for(j = 0; j <= n-1; j++) |
no test coverage detected