Eigen::internal::LU_kernel_bmod< 1 > Struct Reference

#include <SparseLU_kernel_bmod.h>

Static Public Member Functions

template<typename BlockScalarVector , typename ScalarVector , typename IndexVector >
static EIGEN_DONT_INLINE void run (const Index, BlockScalarVector &dense, ScalarVector &, ScalarVector &lusup, Index &luptr, const Index lda, const Index nrow, IndexVector &lsub, const Index lptr, const Index no_zeros)
 

Member Function Documentation

◆ run()

template<typename BlockScalarVector , typename ScalarVector , typename IndexVector >
EIGEN_DONT_INLINE void Eigen::internal::LU_kernel_bmod< 1 >::run ( const  Index,
BlockScalarVector &  dense,
ScalarVector &  ,
ScalarVector &  lusup,
Index luptr,
const Index  lda,
const Index  nrow,
IndexVector &  lsub,
const Index  lptr,
const Index  no_zeros 
)
static
107  {
108  typedef typename ScalarVector::Scalar Scalar;
109  typedef typename IndexVector::Scalar StorageIndex;
110  Scalar f = dense(lsub(lptr + no_zeros));
111  luptr += lda * no_zeros + no_zeros + 1;
112  const Scalar* a(lusup.data() + luptr);
113  const StorageIndex* irow(lsub.data() + lptr + no_zeros + 1);
114  Index i = 0;
115  for (; i + 1 < nrow; i += 2) {
116  Index i0 = *(irow++);
117  Index i1 = *(irow++);
118  Scalar a0 = *(a++);
119  Scalar a1 = *(a++);
120  Scalar d0 = dense.coeff(i0);
121  Scalar d1 = dense.coeff(i1);
122  d0 -= f * a0;
123  d1 -= f * a1;
124  dense.coeffRef(i0) = d0;
125  dense.coeffRef(i1) = d1;
126  }
127  if (i < nrow) dense.coeffRef(*(irow++)) -= f * *(a++);
128 }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
SCALAR Scalar
Definition: bench_gemm.cpp:45
static int f(const TensorMap< Tensor< int, 3 > > &tensor)
Definition: cxx11_tensor_map.cpp:237
const Scalar * a
Definition: level2_cplx_impl.h:32
const char const int const RealScalar const RealScalar const int * lda
Definition: level2_cplx_impl.h:20
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83

References a, f(), i, and lda.


The documentation for this struct was generated from the following file: