26#if defined (HAVE_CONFIG_H)
47solve_singularity_warning (
double rcond)
49 octave::warn_singular_matrix (rcond);
52template <
typename T1,
typename T2>
64 octave::err_nonconformant (R
"(operator \)", a_nr, a_nc, b_nr, b_nc);
70#define INSTANTIATE_MX_LEFTDIV_CONFORM(T1, T2) \
71 template bool mx_leftdiv_conform (const T1&, const T2&)
86template <
typename T1,
typename T2>
98 octave::err_nonconformant (
"operator /", a_nr, a_nc, b_nr, b_nc);
104#define INSTANTIATE_MX_DIV_CONFORM(T1, T2) \
105 template bool mx_div_conform (const T1&, const T2&)
146 Matrix result = btmp.
solve (btyp, atmp, info, rcond,
147 solve_singularity_warning);
167 = btmp.
solve (btyp, atmp, info, rcond, solve_singularity_warning);
187 = btmp.
solve (btyp, atmp, info, rcond, solve_singularity_warning);
207 = btmp.
solve (btyp, atmp, info, rcond, solve_singularity_warning);
227 solve_singularity_warning);
247 = btmp.
solve (btyp, atmp, info, rcond, solve_singularity_warning);
267 = btmp.
solve (btyp, atmp, info, rcond, solve_singularity_warning);
288 = btmp.
solve (btyp, atmp, info, rcond, solve_singularity_warning);
294template <
typename RT,
typename SM,
typename DM>
312 typedef typename DM::element_type DM_elt_type;
313 const DM_elt_type zero = DM_elt_type ();
319 const DM_elt_type s =
d.dgelem (j);
321 r.xcidx (j) = k_result;
325 r.xdata (k_result) = a.data (k) / s;
326 r.xridx (k_result) = a.ridx (k);
330 r.xcidx (nc) = k_result;
332 r.maybe_compress (
true);
340 return do_rightdiv_sm_dm<SparseMatrix> (a, b);
347 return do_rightdiv_sm_dm<SparseComplexMatrix> (a, b);
354 return do_rightdiv_sm_dm<SparseComplexMatrix> (a, b);
361 return do_rightdiv_sm_dm<SparseComplexMatrix> (a, b);
381 result =
Matrix (nr, nc, octave::numeric_limits<double>::NaN ());
383 result =
Matrix (nr, nc, octave::numeric_limits<double>::Inf ());
385 result =
Matrix (nr, nc, -octave::numeric_limits<double>::Inf ());
404 octave::numeric_limits<double>::NaN ()));
474 return a.
solve (typ, b, info, rcond, solve_singularity_warning);
486 return a.
solve (typ, b, info, rcond, solve_singularity_warning);
498 return a.
solve (typ, b, info, rcond, solve_singularity_warning);
510 return a.
solve (typ, b, info, rcond, solve_singularity_warning);
522 return a.
solve (typ, b, info, rcond, solve_singularity_warning);
534 return a.
solve (typ, b, info, rcond, solve_singularity_warning);
546 return a.
solve (typ, b, info, rcond, solve_singularity_warning);
559 return a.
solve (typ, b, info, rcond, solve_singularity_warning);
562template <
typename RT,
typename DM,
typename SM>
580 typedef typename DM::element_type DM_elt_type;
581 const DM_elt_type zero = DM_elt_type ();
588 r.xcidx (j) = k_result;
594 const DM_elt_type s =
d.dgelem (i);
597 r.xdata (k_result) = a.data (k) / s;
598 r.xridx (k_result) = i;
604 r.xcidx (a_nc) = k_result;
606 r.maybe_compress (
true);
614 return do_leftdiv_dm_sm<SparseMatrix> (
d, a);
621 return do_leftdiv_dm_sm<SparseComplexMatrix> (
d, a);
628 return do_leftdiv_dm_sm<SparseComplexMatrix> (
d, a);
636 return do_leftdiv_dm_sm<SparseComplexMatrix> (
d, a);
639OCTAVE_END_NAMESPACE(octave)
charNDArray min(char d, const charNDArray &m)
T & elem(octave_idx_type n)
Size of the specified dimension.
ComplexMatrix hermitian() const
MatrixType transpose() const
SparseComplexMatrix hermitian() const
ComplexMatrix solve(MatrixType &mattype, const Matrix &b) const
SparseMatrix transpose() const
Matrix solve(MatrixType &typ, const Matrix &b) const
octave_idx_type cols() const
octave_idx_type rows() const
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE * d
std::complex< double > Complex
Matrix elem_xdiv(double a, const SparseMatrix &b)
Matrix xdiv(const Matrix &a, const SparseMatrix &b, MatrixType &typ)
bool mx_leftdiv_conform(const T1 &a, const T2 &b)
bool mx_div_conform(const T1 &a, const T2 &b)
RT do_rightdiv_sm_dm(const SM &a, const DM &d)
#define INSTANTIATE_MX_LEFTDIV_CONFORM(T1, T2)
#define INSTANTIATE_MX_DIV_CONFORM(T1, T2)
Matrix xleftdiv(const SparseMatrix &a, const Matrix &b, MatrixType &typ)
RT do_leftdiv_dm_sm(const DM &d, const SM &a)