44template <size_t U, size_t V, size_t W> class MatrixMultiplier ;
55
66template <size_t U, size_t V, size_t W> requires (U > 1 && V > 1 && W > 1 )
7- class MatrixMultiplier<U,V,W> : public ControlBlock<double (*)[U][V], double (*)[U][W]>{
8- double (&A)[U][V], (&B)[V][W], (&result)[U][W];
7+ class MatrixMultiplier<U,V,W> : public ControlBlock<float (*)[U][V], float (*)[U][W]>{
8+ float (&A)[U][V], (&B)[V][W], (&result)[U][W];
99public:
10- MatrixMultiplier (double (&A)[U][V], double (&B)[V][W], double (&result)[U][W]) : A (A), B (B), result (result){
10+ MatrixMultiplier (float (&A)[U][V], float (&B)[V][W], float (&result)[U][W]) : A (A), B (B), result (result){
1111 this ->input_value = &A;
1212 this ->output_value = &result;
1313 }
@@ -33,14 +33,14 @@ class MatrixMultiplier<U,V,W> : public ControlBlock<double(*)[U][V], double(*)[U
3333// CTAD
3434#if __cpp_deduction_guides >= 201606
3535template <size_t U, size_t V, size_t W> requires (U > 1 && V > 1 && W > 1 )
36- MatrixMultiplier(double (&)[U][V], double (&)[V][W], double (&)[U][W])->MatrixMultiplier<U,V,W>;
36+ MatrixMultiplier(float (&)[U][V], float (&)[V][W], float (&)[U][W])->MatrixMultiplier<U,V,W>;
3737#endif
3838
3939template <size_t U, size_t V>
40- class MatrixMultiplier <U,V,1 > : public ControlBlock<double (*)[U][V], double (*)[U]>{
41- double (&A)[U][V], (&B)[V], (&result)[U];
40+ class MatrixMultiplier <U,V,1 > : public ControlBlock<float (*)[U][V], float (*)[U]>{
41+ float (&A)[U][V], (&B)[V], (&result)[U];
4242public:
43- MatrixMultiplier (double (&A)[U][V], double (&B)[V], double (&result)[U]) : A(A), B(B), result(result){
43+ MatrixMultiplier (float (&A)[U][V], float (&B)[V], float (&result)[U]) : A(A), B(B), result(result){
4444 this ->input_value = &A;
4545 this ->output_value = &result;
4646 }
@@ -63,14 +63,14 @@ class MatrixMultiplier<U,V,1> : public ControlBlock<double(*)[U][V], double(*)[U
6363// CTAD
6464#if __cpp_deduction_guides >= 201606
6565template <size_t U, size_t V> requires (U > 1 && V > 1 )
66- MatrixMultiplier(double (&)[U][V], double (&)[V], double (&)[U])->MatrixMultiplier<U,V,1>;
66+ MatrixMultiplier(float (&)[U][V], float (&)[V], float (&)[U])->MatrixMultiplier<U,V,1>;
6767#endif
6868
6969template <size_t U, size_t V>
70- class MatrixMultiplier <1 ,U,V> : public ControlBlock<double (*)[U], double (*)[V]>{
71- double (&A)[U], (&B)[U][V], (&result)[V];
70+ class MatrixMultiplier <1 ,U,V> : public ControlBlock<float (*)[U], float (*)[V]>{
71+ float (&A)[U], (&B)[U][V], (&result)[V];
7272public:
73- MatrixMultiplier (double (&A)[U], double (&B)[U][V], double (&result)[V]) : A(A), B(B), result(result){
73+ MatrixMultiplier (float (&A)[U], float (&B)[U][V], float (&result)[V]) : A(A), B(B), result(result){
7474 this ->input_value = &A;
7575 this ->output_value = &result;
7676 }
@@ -93,14 +93,14 @@ class MatrixMultiplier<1,U,V> : public ControlBlock<double(*)[U], double(*)[V]>{
9393// CTAD
9494#if __cpp_deduction_guides >= 201606
9595template <size_t U, size_t V> requires (U > 1 && V > 1 )
96- MatrixMultiplier(double (&)[U], double (&)[U][V], double (&)[V])->MatrixMultiplier<1,U,V>;
96+ MatrixMultiplier(float (&)[U], float (&)[U][V], float (&)[V])->MatrixMultiplier<1,U,V>;
9797#endif
9898
9999template <size_t U>
100- class MatrixMultiplier <1 ,U,1 > : public ControlBlock<double (*)[U], double (*)>{
101- double (&A)[U], (&B)[U], ( &result) ;
100+ class MatrixMultiplier <1 ,U,1 > : public ControlBlock<float (*)[U], float (*)>{
101+ float (&A)[U], (&B)[U], &result;
102102public:
103- MatrixMultiplier (double (&A)[U], double (&B)[U], double (&result)) : A(A), B(B), result(result){
103+ MatrixMultiplier (float (&A)[U], float (&B)[U], float (&result)) : A(A), B(B), result(result){
104104 this ->input_value = &A;
105105 this ->output_value = &result;
106106 }
@@ -119,5 +119,5 @@ class MatrixMultiplier<1,U,1> : public ControlBlock<double(*)[U], double(*)>{
119119// CTAD
120120#if __cpp_deduction_guides >= 201606
121121template <size_t U> requires (U > 1 )
122- MatrixMultiplier(double (&)[U], double (&)[U], double (&))->MatrixMultiplier<1,U,1>;
122+ MatrixMultiplier(float (&)[U], float (&)[U], float (&))->MatrixMultiplier<1,U,1>;
123123#endif
0 commit comments