51 template<
typename dtype>
64 Shape newShape(inShape);
69 for (
uint32 row = 0; row < order; ++row)
71 for (
uint32 col = 0; col < order; ++col)
73 tempArray(row, col) =
static_cast<double>(inArray(row, col));
77 for (
uint32 row = 0; row < order; ++row)
79 for (
uint32 col = order; col < 2 * order; ++col)
81 if (row == col - order)
83 tempArray(row, col) = 1.0;
87 tempArray(row, col) = 0.0;
92 for (
uint32 row = 0; row < order; ++row)
94 double t = tempArray(row, row);
95 for (
uint32 col = row; col < 2 * order; ++col)
97 tempArray(row, col) /= t;
100 for (
uint32 col = 0; col < order; ++col)
104 t = tempArray(col, row);
105 for (
uint32 k = 0; k < 2 * order; ++k)
107 tempArray(col, k) -= t * tempArray(row, k);
114 for (
uint32 row = 0; row < order; row++)
117 for (
uint32 col = order; col < 2 * order; ++col)
119 returnArray(row, colCounter++) = tempArray(row, col);
#define THROW_INVALID_ARGUMENT_ERROR(msg)
Definition: Error.hpp:36
#define STATIC_ASSERT_ARITHMETIC(dtype)
Definition: StaticAsserts.hpp:37
Shape shape() const noexcept
Definition: NdArrayCore.hpp:4283
A Shape Class for NdArrays.
Definition: Core/Shape.hpp:41
uint32 rows
Definition: Core/Shape.hpp:44
uint32 cols
Definition: Core/Shape.hpp:45
NdArray< double > inv(const NdArray< dtype > &inArray)
Definition: inv.hpp:52
Definition: Coordinate.hpp:45
std::uint32_t uint32
Definition: Types.hpp:40