11#ifndef SPARSELU_KERNEL_BMOD_H
12#define SPARSELU_KERNEL_BMOD_H
33 template <
typename BlockScalarVector,
typename ScalarVector,
typename IndexVector>
34 static EIGEN_DONT_INLINE
void run(
const Index
segsize, BlockScalarVector&
dense, ScalarVector&
tempv, ScalarVector& lusup, Index&
luptr,
const Index lda,
35 const Index nrow, IndexVector& lsub,
const Index
lptr,
const Index
no_zeros);
38template <
int SegSizeAtCompileTime>
39template <
typename BlockScalarVector,
typename ScalarVector,
typename IndexVector>
41 const Index nrow, IndexVector& lsub,
const Index
lptr,
const Index
no_zeros)
43 typedef typename ScalarVector::Scalar Scalar;
67 Index
ldl = internal::first_multiple(nrow, PacketSize);
70 Index
aligned_with_B_offset = (PacketSize-internal::first_default_aligned(B.data(), PacketSize))%PacketSize;
74 internal::sparselu_gemm<Scalar>(l.rows(), l.cols(), B.cols(), B.data(), B.outerStride(), u.data(), u.outerStride(), l.data(), l.outerStride());
85 for (i = 0; i < nrow; i++)
94 template <
typename BlockScalarVector,
typename ScalarVector,
typename IndexVector>
95 static EIGEN_DONT_INLINE
void run(
const Index , BlockScalarVector&
dense, ScalarVector& , ScalarVector& lusup, Index&
luptr,
96 const Index lda,
const Index nrow, IndexVector& lsub,
const Index
lptr,
const Index
no_zeros);
100template <
typename BlockScalarVector,
typename ScalarVector,
typename IndexVector>
102 const Index lda,
const Index nrow, IndexVector& lsub,
const Index
lptr,
const Index
no_zeros)
104 typedef typename ScalarVector::Scalar Scalar;
105 typedef typename IndexVector::Scalar StorageIndex;
108 const Scalar* a(lusup.data() +
luptr);
111 for (; i+1 < nrow; i+=2)
Pseudo expression representing a solving operation.
Definition Solve.h:63
Performs numeric block updates from a given supernode to a single column.
Definition SparseLU_kernel_bmod.h:32
Definition GenericPacketMath.h:90