57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
-
+
-
+
|
return a.lssolve (b, info, rank);
}
DEFUN_DLD (mtt_implicit, args, ,
"implicit integration method")
{
#ifdef OCTAVE_DEV
ColumnVector x = args(0).column_vector_value ();
static ColumnVector x = args(0).column_vector_value ();
const ColumnVector dx = args(1).column_vector_value ();
const Matrix AA = args(2).matrix_value ();
const ColumnVector AAx = args(3).column_vector_value ();
const double t = args(4).double_value ();
const int Nx = (int) (args(5).double_value ());
const ColumnVector openx = args(6).column_vector_value ();
#else
ColumnVector x = args(0).vector_value ();
static ColumnVector x = args(0).vector_value ();
const ColumnVector dx = args(1).vector_value ();
const Matrix AA = args(2).matrix_value ();
const ColumnVector AAx = args(3).vector_value ();
const double t = args(4).double_value ();
const int Nx = (int) (args(5).double_value ());
const ColumnVector openx = args(6).vector_value ();
#endif
|
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
-
-
-
-
+
+
+
+
|
{
if (0 != openx (i))
{
n--;
}
}
ColumnVector tmp_dx (n, 0.0);
ColumnVector tmp_x (n, 0.0);
ColumnVector tmp_AAx (n, 0.0);
Matrix tmp_AA (n, n, 0.0);
static ColumnVector tmp_dx (n);
static ColumnVector tmp_x (n);
static ColumnVector tmp_AAx (n);
static Matrix tmp_AA (n, n);
for (row_new = row_old = 0; row_old < Nx; row_old++)
{
if (0 == openx (row_old))
{
tmp_dx (row_new) = dx (row_old);
tmp_AAx (row_new) = AAx (row_old);
|