| 654 | } |
| 655 | |
| 656 | std::string SchurStructureToString(const int row_block_size, |
| 657 | const int e_block_size, |
| 658 | const int f_block_size) { |
| 659 | const std::string row = (row_block_size == Eigen::Dynamic) |
| 660 | ? "d" |
| 661 | : internal::StringPrintf("%d", row_block_size); |
| 662 | |
| 663 | const std::string e = (e_block_size == Eigen::Dynamic) |
| 664 | ? "d" |
| 665 | : internal::StringPrintf("%d", e_block_size); |
| 666 | |
| 667 | const std::string f = (f_block_size == Eigen::Dynamic) |
| 668 | ? "d" |
| 669 | : internal::StringPrintf("%d", f_block_size); |
| 670 | |
| 671 | return internal::StringPrintf("%s,%s,%s", row.c_str(), e.c_str(), f.c_str()); |
| 672 | } |
| 673 | |
| 674 | #ifndef CERES_NO_CUDA |
| 675 | bool IsCudaRequired(const Solver::Options& options) { |