📄 taucssolver.h
字号:
//=============================================================================
// Simplified version of:
// Example code for the full-day course
//
// M. Botsch, M. Pauly, L. Kobbelt, P. Alliez, B. Levy,
// "Geometric Modeling Based on Polygonal Meshes"
// held at SIGGRAPH 2007, San Diego, and Eurographics 2008, Crete.
//
// Copyright (C) 2007 by Computer Graphics Laboratory, ETH Zurich,
// and Computer Graphics Group, RWTH Aachen
//
//
//-----------------------------------------------------------------------------
//
// License
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor,
// Boston, MA 02110-1301, USA.
//
//=============================================================================
//=============================================================================
//
// CLASS TaucsSolver:
// direct solver for symmetric positive definite sparse systems
//
//=============================================================================
#ifndef TAUCS_SOLVER_HH
#define TAUCS_SOLVER_HH
//== INCLUDES =================================================================
#include <vector>
#include <set>
#include <taucs.h>
//== CLASS DEFINITION =========================================================
class TaucsSolver
{
public:
TaucsSolver();
~TaucsSolver();
void begin_row();
void add_value(int _i, double _val);
void end_row();
bool factorize();
bool solve(std::vector<double>& _b, std::vector<double>& _x);
private:
void delete_matrices();
private:
void *F;
taucs_ccs_matrix A;
std::vector<double> values;
std::vector<int> colptr;
std::vector<int> rowind;
int n_rows;
};
//=============================================================================
#endif // TAUCS_SOLVER_HH defined
//=============================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -