Class MatrixMatrixMult_DDRM
This class contains various types of matrix matrix multiplication operations for DMatrix1Row
.
Two algorithms that are equivalent can often have very different runtime performance. This is because of how modern computers uses fast memory caches to speed up reading/writing to data. Depending on the order in which variables are processed different algorithms can run much faster than others, even if the number of operations is the same.
Algorithms that are labeled as 'reorder' are designed to avoid caching jumping issues, some times at the cost of increasing the number of operations. This is important for large matrices. The straight forward implementation seems to be faster for small matrices.
Algorithms that are labeled as 'aux' use an auxiliary array of length n. This array is used to create a copy of an out of sequence column vector that is referenced several times. This reduces the number of cache misses. If the 'aux' parameter passed in is null then the array is declared internally.
Typically the straight forward implementation runs about 30% faster on smaller matrices and about 5 times slower on larger matrices. This is all computer architecture and matrix shape/size specific.
DO NOT MODIFY. Automatically generated code created by GenerateMatrixMatrixMult_DDRM
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
mult_aux
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @org.jetbrains.annotations.Nullable double[] aux) static void
mult_aux
(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @org.jetbrains.annotations.Nullable double[] aux) static void
mult_reorder
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
mult_reorder
(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
mult_small
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
mult_small
(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
multAdd_aux
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @org.jetbrains.annotations.Nullable double[] aux) static void
multAdd_aux
(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @org.jetbrains.annotations.Nullable double[] aux) static void
multAdd_reorder
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
multAdd_reorder
(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
multAdd_small
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
multAdd_small
(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
multAddTransA_reorder
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
static void
multAddTransA_small
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
static void
multAddTransAB
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
multAddTransAB
(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
multAddTransAB_aux
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @org.jetbrains.annotations.Nullable double[] aux) static void
multAddTransAB_aux
(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @org.jetbrains.annotations.Nullable double[] aux) static void
multAddTransB
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
multAddTransB
(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
multTransA_reorder
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
static void
multTransA_small
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
static void
multTransAB
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
multTransAB
(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
multTransAB_aux
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @org.jetbrains.annotations.Nullable double[] aux) static void
multTransAB_aux
(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @org.jetbrains.annotations.Nullable double[] aux) static void
multTransB
(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C) static void
multTransB
(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C)
-
Constructor Details
-
MatrixMatrixMult_DDRM
public MatrixMatrixMult_DDRM()
-
-
Method Details
-
mult_reorder
-
mult_small
-
mult_aux
public static void mult_aux(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @Nullable @org.jetbrains.annotations.Nullable double[] aux) -
multTransA_reorder
-
multTransA_small
-
multTransAB
-
multTransAB_aux
public static void multTransAB_aux(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @Nullable @org.jetbrains.annotations.Nullable double[] aux) -
multTransB
-
multAdd_reorder
-
multAdd_small
-
multAdd_aux
public static void multAdd_aux(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @Nullable @org.jetbrains.annotations.Nullable double[] aux) -
multAddTransA_reorder
-
multAddTransA_small
-
multAddTransAB
-
multAddTransAB_aux
public static void multAddTransAB_aux(DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @Nullable @org.jetbrains.annotations.Nullable double[] aux) -
multAddTransB
-
mult_reorder
-
mult_small
-
mult_aux
public static void mult_aux(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @Nullable @org.jetbrains.annotations.Nullable double[] aux) -
multTransA_reorder
-
multTransA_small
-
multTransAB
-
multTransAB_aux
public static void multTransAB_aux(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @Nullable @org.jetbrains.annotations.Nullable double[] aux) -
multTransB
-
multAdd_reorder
-
multAdd_small
-
multAdd_aux
public static void multAdd_aux(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @Nullable @org.jetbrains.annotations.Nullable double[] aux) -
multAddTransA_reorder
-
multAddTransA_small
-
multAddTransAB
-
multAddTransAB_aux
public static void multAddTransAB_aux(double alpha, DMatrix1Row A, DMatrix1Row B, DMatrix1Row C, @Nullable @org.jetbrains.annotations.Nullable double[] aux) -
multAddTransB
-