Home | History | Annotate | Download | only in Core

Lines Matching refs:Lhs

26 template<typename Lhs, typename Rhs, int Side>
41 template<typename Lhs, typename Rhs,
44 int Unrolling = trsolve_traits<Lhs,Rhs,Side>::Unrolling,
45 int RhsVectors = trsolve_traits<Lhs,Rhs,Side>::RhsVectors
49 template<typename Lhs, typename Rhs, int Side, int Mode>
50 struct triangular_solver_selector<Lhs,Rhs,Side,Mode,NoUnrolling,1>
52 typedef typename Lhs::Scalar LhsScalar;
54 typedef blas_traits<Lhs> LhsProductTraits;
57 static void run(const Lhs& lhs, Rhs& rhs)
59 ActualLhsType actualLhs = LhsProductTraits::extract(lhs);
71 triangular_solve_vector<LhsScalar, RhsScalar, typename Lhs::Index, Side, Mode, LhsProductTraits::NeedToConjugate,
72 (int(Lhs::Flags) & RowMajorBit) ? RowMajor : ColMajor>
81 template<typename Lhs, typename Rhs, int Side, int Mode>
82 struct triangular_solver_selector<Lhs,Rhs,Side,Mode,NoUnrolling,Dynamic>
86 typedef blas_traits<Lhs> LhsProductTraits;
89 static void run(const Lhs& lhs, Rhs& rhs)
91 typename internal::add_const_on_value_type<ActualLhsType>::type actualLhs = LhsProductTraits::extract(lhs);
93 const Index size = lhs.rows();
97 Rhs::MaxRowsAtCompileTime, Rhs::MaxColsAtCompileTime, Lhs::MaxRowsAtCompileTime,4> BlockingType;
101 triangular_solve_matrix<Scalar,Index,Side,Mode,LhsProductTraits::NeedToConjugate,(int(Lhs::Flags) & RowMajorBit) ? RowMajor : ColMajor,
111 template<typename Lhs, typename Rhs, int Mode, int Index, int Size,
115 template<typename Lhs, typename Rhs, int Mode, int Index, int Size>
116 struct triangular_solver_unroller<Lhs,Rhs,Mode,Index,Size,false> {
122 static void run(const Lhs& lhs, Rhs& rhs)
125 rhs.coeffRef(I) -= lhs.row(I).template segment<Index>(S).transpose()
129 rhs.coeffRef(I) /= lhs.coeff(I,I);
131 triangular_solver_unroller<Lhs,Rhs,Mode,Index+1,Size>::run(lhs,rhs);
135 template<typename Lhs, typename Rhs, int Mode, int Index, int Size>
136 struct triangular_solver_unroller<Lhs,Rhs,Mode,Index,Size,true> {
137 static void run(const Lhs&, Rhs&) {}
140 template<typename Lhs, typename Rhs, int Mode>
141 struct triangular_solver_selector<Lhs,Rhs,OnTheLeft,Mode,CompleteUnrolling,1> {
142 static void run(const Lhs& lhs, Rhs& rhs)
143 { triangular_solver_unroller<Lhs,Rhs,Mode,0,Rhs::SizeAtCompileTime>::run(lhs,rhs); }
146 template<typename Lhs, typename Rhs, int Mode>
147 struct triangular_solver_selector<Lhs,Rhs,OnTheRight,Mode,CompleteUnrolling,1> {
148 static void run(const Lhs& lhs, Rhs& rhs)
150 Transpose<const Lhs> trLhs(lhs);
153 triangular_solver_unroller<Transpose<const Lhs>,Transpose<Rhs>,