23 #if defined (HAVE_CONFIG_H)
65 double *p_balanced_mat = balanced_mat.fortran_vec ();
67 double *p_balanced_mat2 = balanced_mat2.fortran_vec ();
69 char job = balance_job[0];
71 F77_XFCN (dggbal, DGGBAL, (F77_CONST_CHAR_ARG2 (&job, 1),
72 n, p_balanced_mat, n, p_balanced_mat2,
73 n, ilo, ihi, plscale, prscale, pwork, info
74 F77_CHAR_ARG_LEN (1)));
76 balancing_mat =
Matrix (n, n, 0.0);
77 balancing_mat2 =
Matrix (n, n, 0.0);
81 balancing_mat.elem (
i ,
i) = 1.0;
82 balancing_mat2.elem (
i ,
i) = 1.0;
85 double *p_balancing_mat = balancing_mat.fortran_vec ();
86 double *p_balancing_mat2 = balancing_mat2.fortran_vec ();
89 F77_XFCN (dggbak, DGGBAK, (F77_CONST_CHAR_ARG2 (&job, 1),
90 F77_CONST_CHAR_ARG2 (
"L", 1),
91 n, ilo, ihi, plscale, prscale,
92 n, p_balancing_mat, n, info
94 F77_CHAR_ARG_LEN (1)));
97 F77_XFCN (dggbak, DGGBAK, (F77_CONST_CHAR_ARG2 (&job, 1),
98 F77_CONST_CHAR_ARG2 (
"R", 1),
99 n, ilo, ihi, plscale, prscale,
100 n, p_balancing_mat2, n, info
102 F77_CHAR_ARG_LEN (1)));
116 (
"FloatGEPBALANCE requires square matrix");
130 float *p_balanced_mat = balanced_mat.fortran_vec ();
132 float *p_balanced_mat2 = balanced_mat2.fortran_vec ();
134 char job = balance_job[0];
136 F77_XFCN (sggbal, SGGBAL, (F77_CONST_CHAR_ARG2 (&job, 1),
137 n, p_balanced_mat, n, p_balanced_mat2,
138 n, ilo, ihi, plscale, prscale, pwork, info
139 F77_CHAR_ARG_LEN (1)));
146 balancing_mat.elem (
i ,
i) = 1.0;
147 balancing_mat2.elem (
i ,
i) = 1.0;
150 float *p_balancing_mat = balancing_mat.fortran_vec ();
151 float *p_balancing_mat2 = balancing_mat2.fortran_vec ();
154 F77_XFCN (sggbak, SGGBAK, (F77_CONST_CHAR_ARG2 (&job, 1),
155 F77_CONST_CHAR_ARG2 (
"L", 1),
156 n, ilo, ihi, plscale, prscale,
157 n, p_balancing_mat, n, info
159 F77_CHAR_ARG_LEN (1)));
162 F77_XFCN (sggbak, SGGBAK, (F77_CONST_CHAR_ARG2 (&job, 1),
163 F77_CONST_CHAR_ARG2 (
"R", 1),
164 n, ilo, ihi, plscale, prscale,
165 n, p_balancing_mat2, n, info
167 F77_CHAR_ARG_LEN (1)));
182 (
"ComplexGEPBALANCE requires square matrix");
196 Complex *p_balanced_mat = balanced_mat.fortran_vec ();
198 Complex *p_balanced_mat2 = balanced_mat2.fortran_vec ();
200 char job = balance_job[0];
202 F77_XFCN (zggbal, ZGGBAL, (F77_CONST_CHAR_ARG2 (&job, 1),
204 n, ilo, ihi, plscale, prscale, pwork, info
205 F77_CHAR_ARG_LEN (1)));
207 balancing_mat =
Matrix (n, n, 0.0);
208 balancing_mat2 =
Matrix (n, n, 0.0);
212 balancing_mat.elem (
i ,
i) = 1.0;
213 balancing_mat2.elem (
i ,
i) = 1.0;
216 double *p_balancing_mat = balancing_mat.fortran_vec ();
217 double *p_balancing_mat2 = balancing_mat2.fortran_vec ();
220 F77_XFCN (dggbak, DGGBAK, (F77_CONST_CHAR_ARG2 (&job, 1),
221 F77_CONST_CHAR_ARG2 (
"L", 1),
222 n, ilo, ihi, plscale, prscale,
223 n, p_balancing_mat, n, info
225 F77_CHAR_ARG_LEN (1)));
228 F77_XFCN (dggbak, DGGBAK, (F77_CONST_CHAR_ARG2 (&job, 1),
229 F77_CONST_CHAR_ARG2 (
"R", 1),
230 n, ilo, ihi, plscale, prscale,
231 n, p_balancing_mat2, n, info
233 F77_CHAR_ARG_LEN (1)));
248 (*current_liboctave_error_handler)
249 (
"FloatComplexGEPBALANCE requires square matrix");
265 FloatComplex *p_balanced_mat = balanced_mat.fortran_vec ();
267 FloatComplex *p_balanced_mat2 = balanced_mat2.fortran_vec ();
269 char job = balance_job[0];
271 F77_XFCN (cggbal, CGGBAL, (F77_CONST_CHAR_ARG2 (&job, 1),
273 n, ilo, ihi, plscale, prscale, pwork, info
274 F77_CHAR_ARG_LEN (1)));
281 balancing_mat.elem (
i ,
i) = 1.0;
282 balancing_mat2.elem (
i ,
i) = 1.0;
285 float *p_balancing_mat = balancing_mat.fortran_vec ();
286 float *p_balancing_mat2 = balancing_mat2.fortran_vec ();
289 F77_XFCN (sggbak, SGGBAK, (F77_CONST_CHAR_ARG2 (&job, 1),
290 F77_CONST_CHAR_ARG2 (
"L", 1),
291 n, ilo, ihi, plscale, prscale,
292 n, p_balancing_mat, n, info
294 F77_CHAR_ARG_LEN (1)));
297 F77_XFCN (sggbak, SGGBAK, (F77_CONST_CHAR_ARG2 (&job, 1),
298 F77_CONST_CHAR_ARG2 (
"R", 1),
299 n, ilo, ihi, plscale, prscale,
300 n, p_balancing_mat2, n, info
302 F77_CHAR_ARG_LEN (1)));
Octave interface to the compression and uncompression libraries.
OCTAVE_NORETURN liboctave_error_handler current_liboctave_error_handler
#define F77_DBLE_CMPLX_ARG(x)
#define F77_XFCN(f, F, args)
octave_idx_type rows(void) const
calling an anonymous function involves an overhead quite comparable to the overhead of an m file function Passing a handle to a built in function is because the interpreter is not involved in the internal loop For a
const dim_vector & dims(void) const
Return a const-reference so that dims ()(i) works efficiently.
void err_nonconformant(const char *op, octave_idx_type op1_len, octave_idx_type op2_len)
=val(i)}if ode{val(i)}occurs in table i
octave_idx_type init(const T &a, const T &b, const std::string &job)
#define OCTAVE_LOCAL_BUFFER(T, buf, size)
std::complex< float > FloatComplex
std::complex< double > Complex
octave_idx_type cols(void) const
If this string is the system will ring the terminal sometimes it is useful to be able to print the original representation of the string