RSMesh 1.0.0
一个曲面重构的系统,输入为点云,输出为obj,stl等主流格式的网格文件,使用的方法为径向基函数插值,采取了并行优化、Intel-MKL等优化措施,支持百万级别的点云
载入中...
搜索中...
未找到
fgmres.h
1//
2// Created by RainSure on 2024/2/13.
3//
4
5#ifndef RSMESH_FGMRES_H
6#define RSMESH_FGMRES_H
7
8#include "gmres.h"
9#include "types.h"
10#include <stdexcept>
11#include <vector>
12
13namespace rsmesh::krylov {
14 class fgmres : public gmres {
15 public:
16 fgmres(const linear_operator& op, const valuesd& rhs, index_t max_iter);
17
18 void set_left_preconditioner(const linear_operator& /*left_preconditioner*/) override {
19 throw std::runtime_error("set_left_preconditioner is not supported.");
20 }
21
22 valuesd solution_vector() const override;
23
24 private:
25 void add_preconditioned_krylov_basis(const valuesd& z) override;
26
27 // zs[i] := right_preconditioned(vs[i - 1]).
28 std::vector<valuesd> zs_;
29 };
30}
31
32#endif //RSMESH_FGMRES_H