WPILibC++ 2023.4.3
SparseLU_gemm_kernel.h File Reference

Go to the source code of this file.

Namespaces

namespace  Eigen
 Namespace containing all symbols from the Eigen library.
 
namespace  Eigen::internal
 

Macros

#define KMADD(c, a, b, tmp)   {tmp = b; tmp = pmul(a,tmp); c = padd(c,tmp);}
 
#define WORK(I)
 
#define WORK(I)
 

Functions

template<typename Scalar >
EIGEN_DONT_INLINE void Eigen::internal::sparselu_gemm (Index m, Index n, Index d, const Scalar *A, Index lda, const Scalar *B, Index ldb, Scalar *C, Index ldc)
 

Macro Definition Documentation

◆ KMADD

#define KMADD (   c,
  a,
  b,
  tmp 
)    {tmp = b; tmp = pmul(a,tmp); c = padd(c,tmp);}

◆ WORK [1/2]

#define WORK (   I)
Value:
c0 = pload<Packet>(C0+i+(I)*PacketSize); \
c1 = pload<Packet>(C1+i+(I)*PacketSize); \
KMADD(c0, a0, b00, t0) \
KMADD(c1, a0, b01, t1) \
a0 = pload<Packet>(A0+i+(I+1)*PacketSize); \
KMADD(c0, a1, b10, t0) \
KMADD(c1, a1, b11, t1) \
a1 = pload<Packet>(A1+i+(I+1)*PacketSize); \
if(RK==4){ KMADD(c0, a2, b20, t0) }\
if(RK==4){ KMADD(c1, a2, b21, t1) }\
if(RK==4){ a2 = pload<Packet>(A2+i+(I+1)*PacketSize); }\
if(RK==4){ KMADD(c0, a3, b30, t0) }\
if(RK==4){ KMADD(c1, a3, b31, t1) }\
if(RK==4){ a3 = pload<Packet>(A3+i+(I+1)*PacketSize); }\
pstore(C0+i+(I)*PacketSize, c0); \
pstore(C1+i+(I)*PacketSize, c1)
#define KMADD(c, a, b, tmp)

◆ WORK [2/2]

#define WORK (   I)
Value:
c0 = pload<Packet>(C0+i+(I)*PacketSize); \
KMADD(c0, a0, b00, t0) \
a0 = pload<Packet>(A0+i+(I+1)*PacketSize); \
KMADD(c0, a1, b10, t0) \
a1 = pload<Packet>(A1+i+(I+1)*PacketSize); \
if(RK==4){ KMADD(c0, a2, b20, t0) }\
if(RK==4){ a2 = pload<Packet>(A2+i+(I+1)*PacketSize); }\
if(RK==4){ KMADD(c0, a3, b30, t0) }\
if(RK==4){ a3 = pload<Packet>(A3+i+(I+1)*PacketSize); }\
pstore(C0+i+(I)*PacketSize, c0);