summaryrefslogtreecommitdiff
path: root/thirdparty/thekla_atlas/nvmath/Solver.h
blob: 2bbf92736ac29c666cf8f61b5132137bd811e1e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// This code is in the public domain -- castanyo@yahoo.es

#pragma once
#ifndef NV_MATH_SOLVER_H
#define NV_MATH_SOLVER_H

#include "nvmath.h"

namespace nv
{
    class SparseMatrix;
    class FullVector;


    // Linear solvers.
    NVMATH_API bool LeastSquaresSolver(const SparseMatrix & A, const FullVector & b, FullVector & x, float epsilon = 1e-5f);
    NVMATH_API bool LeastSquaresSolver(const SparseMatrix & A, const FullVector & b, FullVector & x, const uint * lockedParameters, uint lockedCount, float epsilon = 1e-5f);
    NVMATH_API bool SymmetricSolver(const SparseMatrix & A, const FullVector & b, FullVector & x, float epsilon = 1e-5f);
    //NVMATH_API void NonSymmetricSolver(const SparseMatrix & A, const FullVector & b, FullVector & x, float epsilon = 1e-5f);

} // nv namespace


#endif // NV_MATH_SOLVER_H