Actual source code: taolinearsolver_ga.c
1: #include "tao_general.h"
2: #include "taomat_ga.h"
3: #include "taovec_ga.h"
4: #include "taolinearsolver_ga.h"
6: TaoLinearSolverGa::TaoLinearSolverGa():TaoLinearSolver() {
7: linear_iters=0;
8: mm = 0;
9: }
11: int
12: TaoLinearSolverGa::SetOperator(TaoMat* m1){
13: TaoFunctionBegin;
14: mm = ((TaoMatGa *)m1)->GetMat();
15: TaoFunctionReturn(0);
16: }
19: int
20: TaoLinearSolverGa::SetTrustRadius(double rad){
21: TaoFunctionBegin;
22: GA_Error ("TaoLinearSolverGA::SetTrustRadius() not defined: ", 0L);
23: TaoFunctionReturn(1);
24: }
26: int
27: TaoLinearSolverGa::Solve(TaoVec* v1, TaoVec* v2){
28: GAVec g_vv=((TaoVecGa *)v1)->GetVec();
29: GAVec g_ww=((TaoVecGa *)v2)->GetVec();
30: TaoFunctionBegin;
31: GA_Copy(g_vv, g_ww);
32: GA_Lu_solve('N', mm, g_ww);
33: TaoFunctionReturn(0);
34: }
36: int
37: TaoLinearSolverGa::GetNumberIterations(int * iters){
38: TaoFunctionBegin;
39: *iters=linear_iters;
40: TaoFunctionReturn(0);
41: }
43: int
44: TaoLinearSolverGa::SetTolerances(double rtol, double atol, double dtol,
45: int maxits){
46: TaoFunctionBegin;
47: GA_Error ("TaoLinearSolverGA::SetTolerances() not defined: ", 0L);
48: TaoFunctionReturn(1);
49: }
51: int
52: TaoLinearSolverGa::View(){
53: TaoFunctionBegin;
54: GA_Error ("TaoLinearSolverGA::View() not defined: ", 0L);
55: TaoFunctionReturn(1);
56: }
58: int
59: TaoLinearSolverGa::SetOptions(){
60: TaoFunctionBegin;
61: GA_Error ("TaoLinearSolverGA::SetOptions() not defined: ", 0L);
62: TaoFunctionReturn(1);
63: }
65: int
66: TaoLinearSolverGa::Duplicate(TaoLinearSolver**M){
67: TaoFunctionBegin;
68: *M = new TaoLinearSolverGa(*this);
69: TaoFunctionReturn(0);
70: }