@@ -319,8 +319,11 @@ void MultigridState::generate(const LinOp* system_matrix_in,
319319 auto mg_level = mg_level_list.at (i);
320320
321321 run<gko::multigrid::EnableMultigridLevel, float , double ,
322- #if GINKGO_ENABLE_HALF || GINKGO_ENABLE_BFLOAT16
322+ #if GINKGO_ENABLE_HALF
323323 float16, std::complex <float16>,
324+ #endif
325+ #if GINKGO_ENABLE_BFLOAT16
326+ bfloat16, std::complex <bfloat16>,
324327#endif
325328 std::complex <float >, std::complex <double >>(
326329 mg_level,
@@ -461,8 +464,11 @@ void MultigridState::run_mg_cycle(multigrid::cycle cycle, size_type level,
461464 }
462465 auto mg_level = multigrid->get_mg_level_list ().at (level);
463466 run<gko::multigrid::EnableMultigridLevel, float , double ,
464- #if GINKGO_ENABLE_HALF || GINKGO_ENABLE_BFLOAT16
467+ #if GINKGO_ENABLE_HALF
465468 float16, std::complex <float16>,
469+ #endif
470+ #if GINKGO_ENABLE_BFLOAT16
471+ bfloat16, std::complex <bfloat16>,
466472#endif
467473 std::complex <float >, std::complex <double >>(
468474 mg_level, [&, this ](auto mg_level) {
@@ -714,8 +720,11 @@ void Multigrid::generate()
714720 }
715721
716722 run<gko::multigrid::EnableMultigridLevel, float , double ,
717- #if GINKGO_ENABLE_HALF || GINKGO_ENABLE_BFLOAT16
723+ #if GINKGO_ENABLE_HALF
718724 float16, std::complex <float16>,
725+ #endif
726+ #if GINKGO_ENABLE_BFLOAT16
727+ bfloat16, std::complex <bfloat16>,
719728#endif
720729 std::complex <float >, std::complex <double >>(
721730 mg_level,
@@ -755,8 +764,11 @@ void Multigrid::generate()
755764
756765 // generate coarsest solver
757766 run<gko::multigrid::EnableMultigridLevel, float , double ,
758- #if GINKGO_ENABLE_HALF || GINKGO_ENABLE_BFLOAT16
767+ #if GINKGO_ENABLE_HALF
759768 float16, std::complex <float16>,
769+ #endif
770+ #if GINKGO_ENABLE_BFLOAT16
771+ bfloat16, std::complex <bfloat16>,
760772#endif
761773 std::complex <float >, std::complex <double >>(
762774 last_mg_level,
@@ -875,8 +887,11 @@ void Multigrid::apply_with_initial_guess_impl(const LinOp* b, LinOp* x,
875887 };
876888 auto first_mg_level = this ->get_mg_level_list ().front ();
877889 run<gko::multigrid::EnableMultigridLevel, float , double ,
878- #if GINKGO_ENABLE_HALF || GINKGO_ENABLE_BFLOAT16
890+ #if GINKGO_ENABLE_HALF
879891 float16, std::complex <float16>,
892+ #endif
893+ #if GINKGO_ENABLE_BFLOAT16
894+ bfloat16, std::complex <bfloat16>,
880895#endif
881896 std::complex <float >, std::complex <double >>(first_mg_level, lambda, b,
882897 x);
@@ -917,8 +932,11 @@ void Multigrid::apply_with_initial_guess_impl(const LinOp* alpha,
917932 };
918933 auto first_mg_level = this ->get_mg_level_list ().front ();
919934 run<gko::multigrid::EnableMultigridLevel, float , double ,
920- #if GINKGO_ENABLE_HALF || GINKGO_ENABLE_BFLOAT16
935+ #if GINKGO_ENABLE_HALF
921936 float16, std::complex <float16>,
937+ #endif
938+ #if GINKGO_ENABLE_BFLOAT16
939+ bfloat16, std::complex <bfloat16>,
922940#endif
923941 std::complex <float >, std::complex <double >>(first_mg_level, lambda,
924942 alpha, b, beta, x);
@@ -985,8 +1003,11 @@ void Multigrid::apply_dense_impl(const VectorType* b, VectorType* x,
9851003 auto first_mg_level = this ->get_mg_level_list ().front ();
9861004
9871005 run<gko::multigrid::EnableMultigridLevel, float , double ,
988- #if GINKGO_ENABLE_HALF || GINKGO_ENABLE_BFLOAT16
1006+ #if GINKGO_ENABLE_HALF
9891007 float16, std::complex <float16>,
1008+ #endif
1009+ #if GINKGO_ENABLE_BFLOAT16
1010+ bfloat16, std::complex <bfloat16>,
9901011#endif
9911012 std::complex <float >, std::complex <double >>(first_mg_level, lambda, b,
9921013 x);
0 commit comments