25 #if defined (HAVE_CONFIG_H) 57 template <
typename T1,
typename T2>
76 #define INSTANTIATE_MX_LEFTDIV_CONFORM(T1, T2) \ 77 template bool mx_leftdiv_conform (const T1&, const T2&, blas_trans_type) 84 template <
typename T1,
typename T2>
102 #define INSTANTIATE_MX_DIV_CONFORM(T1, T2) \ 103 template bool mx_div_conform (const T1&, const T2&) 130 =
b.solve (typ,
a.transpose (), info, rcond,
133 return result.transpose ();
147 =
b.solve (typ,
a.transpose (), info, rcond,
150 return result.transpose ();
164 =
b.solve (typ,
a.transpose (), info, rcond,
167 return result.transpose ();
181 =
b.solve (typ,
a.transpose (), info, rcond,
184 return result.transpose ();
431 =
b.solve (typ,
a.transpose (), info, rcond,
434 return result.transpose ();
448 =
b.solve (typ,
a.transpose (), info, rcond,
451 return result.transpose ();
465 =
b.solve (typ,
a.transpose (), info, rcond,
468 return result.transpose ();
482 =
b.solve (typ,
a.transpose (), info, rcond,
485 return result.transpose ();
698 template <
typename MT,
typename DMT>
709 typedef typename DMT::element_type S;
710 typedef typename MT::element_type T;
711 const T *aa =
a.data ();
712 const S *dd =
d.data ();
713 T *xx =
x.fortran_vec ();
781 template <
typename MT,
typename DMT>
793 typedef typename DMT::element_type S;
794 typedef typename MT::element_type T;
795 const T *aa =
a.data ();
796 const S *dd =
d.data ();
797 T *xx =
x.fortran_vec ();
802 xx[
i] = (dd[
i] != S () ? aa[
i] / dd[
i] : T ());
861 template <
typename MT,
typename DMT>
874 typedef typename DMT::element_type S;
875 typedef typename MT::element_type T;
876 const T *aa =
a.data ();
877 const S *dd =
d.data ();
878 T *xx =
x.fortran_vec ();
881 xx[
i] = (dd[
i] != S () ? aa[
i] / dd[
i] : T ());
936 template <
typename MT,
typename DMT>
949 typedef typename DMT::element_type S;
950 typedef typename MT::element_type T;
951 const T *aa =
a.data ();
952 const S *dd =
d.data ();
953 T *xx =
x.fortran_vec ();
956 xx[
i] = (dd[
i] != S () ? aa[
i] / dd[
i] : T ());
MT dmm_leftdiv_impl(const DMT &d, const MT &a)
Matrix xleftdiv(const Matrix &a, const Matrix &b, MatrixType &typ, blas_trans_type transt)
MT mdm_div_impl(const MT &a, const DMT &d)
Matrix xdiv(const Matrix &a, const Matrix &b, MatrixType &typ)
F77_RET_T const F77_REAL const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE * d
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
MT dmdm_div_impl(const MT &a, const DMT &d)
static void solve_singularity_warning(double rcond)
void err_nonconformant(const char *op, octave_idx_type op1_len, octave_idx_type op2_len)
#define INSTANTIATE_MX_LEFTDIV_CONFORM(T1, T2)
bool mx_div_conform(const T1 &a, const T2 &b)
bool mx_leftdiv_conform(const T1 &a, const T2 &b, blas_trans_type blas_trans)
#define INSTANTIATE_MX_DIV_CONFORM(T1, T2)
With real return the complex result
MT dmdm_leftdiv_impl(const DMT &d, const MT &a)
Matrix x_el_div(double a, const Matrix &b)
std::complex< float > FloatComplex
std::complex< double > Complex
void warn_singular_matrix(double rcond)
F77_RET_T const F77_REAL const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T const F77_DBLE * x
charNDArray min(char d, const charNDArray &m)