Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • jcarpent/eigenpy
  • gsaurel/eigenpy
  • stack-of-tasks/eigenpy
3 results
Show changes
Showing
with 302 additions and 4 deletions
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/decompositions/LLT.hpp"
namespace eigenpy {
void exposeLLTSolver() {
using namespace Eigen;
LLTSolverVisitor<MatrixXd>::expose("LLT");
}
} // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/decompositions/minres.hpp"
namespace eigenpy {
void exposeMINRESSolver() {
using namespace Eigen;
MINRESSolverVisitor<MatrixXd>::expose("MINRES");
}
} // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/decompositions/PermutationMatrix.hpp"
namespace eigenpy {
void exposePermutationMatrix() {
using namespace Eigen;
PermutationMatrixVisitor<Eigen::Dynamic>::expose("PermutationMatrix");
}
} // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/decompositions/QR.hpp"
namespace eigenpy {
void exposeQRSolvers() {
using namespace Eigen;
HouseholderQRSolverVisitor<MatrixXd>::expose("HouseholderQR");
FullPivHouseholderQRSolverVisitor<MatrixXd>::expose("FullPivHouseholderQR");
ColPivHouseholderQRSolverVisitor<MatrixXd>::expose("ColPivHouseholderQR");
CompleteOrthogonalDecompositionSolverVisitor<MatrixXd>::expose(
"CompleteOrthogonalDecomposition");
}
} // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/decompositions/EigenSolver.hpp"
namespace eigenpy {
void exposeEigenSolver() {
using namespace Eigen;
EigenSolverVisitor<MatrixXd>::expose("EigenSolver");
}
} // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/decompositions/SelfAdjointEigenSolver.hpp"
namespace eigenpy {
void exposeSelfAdjointEigenSolver() {
using namespace Eigen;
SelfAdjointEigenSolverVisitor<MatrixXd>::expose("SelfAdjointEigenSolver");
}
} // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/decompositions/sparse/LDLT.hpp"
namespace eigenpy {
void exposeSimplicialLDLTSolver() {
using namespace Eigen;
typedef SparseMatrix<double, ColMajor> ColMajorSparseMatrix;
SimplicialLDLTVisitor<ColMajorSparseMatrix>::expose("SimplicialLDLT");
}
} // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/decompositions/sparse/LLT.hpp"
namespace eigenpy {
void exposeSimplicialLLTSolver() {
using namespace Eigen;
typedef SparseMatrix<double, ColMajor> ColMajorSparseMatrix;
SimplicialLLTVisitor<ColMajorSparseMatrix>::expose("SimplicialLLT");
}
} // namespace eigenpy
...@@ -12,8 +12,21 @@ namespace eigenpy { ...@@ -12,8 +12,21 @@ namespace eigenpy {
void seed(unsigned int seed_value) { srand(seed_value); } void seed(unsigned int seed_value) { srand(seed_value); }
void exposeMatrixBool(); void exposeMatrixBool();
void exposeMatrixInt(); void exposeMatrixInt8();
void exposeMatrixLong(); void exposeMatrixChar();
void exposeMatrixUInt8();
void exposeMatrixInt16();
void exposeMatrixUInt16();
void exposeMatrixInt32();
void exposeMatrixUInt32();
void exposeMatrixWindowsLong();
void exposeMatrixWindowsULong();
void exposeMatrixMacLong();
void exposeMatrixMacULong();
void exposeMatrixInt64();
void exposeMatrixUInt64();
void exposeMatrixLinuxLongLong();
void exposeMatrixLinuxULongLong();
void exposeMatrixFloat(); void exposeMatrixFloat();
void exposeMatrixDouble(); void exposeMatrixDouble();
void exposeMatrixLongDouble(); void exposeMatrixLongDouble();
...@@ -23,6 +36,7 @@ void exposeMatrixComplexDouble(); ...@@ -23,6 +36,7 @@ void exposeMatrixComplexDouble();
void exposeMatrixComplexLongDouble(); void exposeMatrixComplexLongDouble();
void exposeNoneType(); void exposeNoneType();
void exposeTypeInfo();
/* Enable Eigen-Numpy serialization for a set of standard MatrixBase instances. /* Enable Eigen-Numpy serialization for a set of standard MatrixBase instances.
*/ */
...@@ -47,8 +61,21 @@ void enableEigenPy() { ...@@ -47,8 +61,21 @@ void enableEigenPy() {
"seed_value."); "seed_value.");
exposeMatrixBool(); exposeMatrixBool();
exposeMatrixInt(); exposeMatrixInt8();
exposeMatrixLong(); exposeMatrixChar();
exposeMatrixUInt8();
exposeMatrixInt16();
exposeMatrixUInt16();
exposeMatrixInt32();
exposeMatrixUInt32();
exposeMatrixWindowsLong();
exposeMatrixWindowsULong();
exposeMatrixMacLong();
exposeMatrixMacULong();
exposeMatrixInt64();
exposeMatrixUInt64();
exposeMatrixLinuxLongLong();
exposeMatrixLinuxULongLong();
exposeMatrixFloat(); exposeMatrixFloat();
exposeMatrixDouble(); exposeMatrixDouble();
exposeMatrixLongDouble(); exposeMatrixLongDouble();
...@@ -58,6 +85,15 @@ void enableEigenPy() { ...@@ -58,6 +85,15 @@ void enableEigenPy() {
exposeMatrixComplexLongDouble(); exposeMatrixComplexLongDouble();
exposeNoneType(); exposeNoneType();
exposeTypeInfo();
}
bool withTensorSupport() {
#ifdef EIGENPY_WITH_TENSOR_SUPPORT
return true;
#else
return false;
#endif
} }
} // namespace eigenpy } // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/eigenpy.hpp"
#include <cstdint>
namespace eigenpy {
void exposeMatrixChar() {
exposeType<char>();
exposeType<char, Eigen::RowMajor>();
}
} // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/eigenpy.hpp"
#include <cstdint>
namespace eigenpy {
void exposeMatrixInt16() {
exposeType<int16_t>();
exposeType<int16_t, Eigen::RowMajor>();
}
} // namespace eigenpy
...@@ -4,9 +4,11 @@ ...@@ -4,9 +4,11 @@
#include "eigenpy/eigenpy.hpp" #include "eigenpy/eigenpy.hpp"
#include <cstdint>
namespace eigenpy { namespace eigenpy {
void exposeMatrixLong() { void exposeMatrixInt32() {
exposeType<long>(); exposeType<int32_t>();
exposeType<long, Eigen::RowMajor>(); exposeType<int32_t, Eigen::RowMajor>();
} }
} // namespace eigenpy } // namespace eigenpy
/*
* Copyright 2020 INRIA
*/
#include "eigenpy/eigenpy.hpp"
#include <cstdint>
namespace eigenpy {
void exposeMatrixInt64() {
exposeType<int64_t>();
exposeType<int64_t, Eigen::RowMajor>();
}
} // namespace eigenpy
...@@ -4,9 +4,11 @@ ...@@ -4,9 +4,11 @@
#include "eigenpy/eigenpy.hpp" #include "eigenpy/eigenpy.hpp"
#include <cstdint>
namespace eigenpy { namespace eigenpy {
void exposeMatrixInt() { void exposeMatrixInt8() {
exposeType<int>(); exposeType<int8_t>();
exposeType<int, Eigen::RowMajor>(); exposeType<int8_t, Eigen::RowMajor>();
} }
} // namespace eigenpy } // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/eigenpy.hpp"
namespace eigenpy {
void exposeMatrixLinuxLongLong() {
// On Linux, long long is a 64 bytes type but it's a different type than int64_t
#ifdef __linux__
exposeType<long long>();
exposeType<long long, Eigen::RowMajor>();
#endif // linux
}
} // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/eigenpy.hpp"
namespace eigenpy {
void exposeMatrixLinuxULongLong() {
// On Linux, long long is a 64 bytes type but it's a different type than int64_t
#ifdef __linux__
exposeType<unsigned long long>();
exposeType<unsigned long long, Eigen::RowMajor>();
#endif // linux
}
} // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/eigenpy.hpp"
namespace eigenpy {
void exposeMatrixMacLong() {
// On Mac, long is a 64 bytes type but it's a different type than int64_t
#ifdef __APPLE__
exposeType<long>();
exposeType<long, Eigen::RowMajor>();
#endif // Mac
}
} // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/eigenpy.hpp"
namespace eigenpy {
void exposeMatrixMacULong() {
// On Mac, long is a 64 bytes type but it's a different type than int64_t
#ifdef __APPLE__
exposeType<unsigned long>();
exposeType<unsigned long, Eigen::RowMajor>();
#endif // Mac
}
} // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/eigenpy.hpp"
#include <cstdint>
namespace eigenpy {
void exposeMatrixUInt16() {
exposeType<uint16_t>();
exposeType<uint16_t, Eigen::RowMajor>();
}
} // namespace eigenpy
/*
* Copyright 2024 INRIA
*/
#include "eigenpy/eigenpy.hpp"
#include <cstdint>
namespace eigenpy {
void exposeMatrixUInt32() {
exposeType<uint32_t>();
exposeType<uint32_t, Eigen::RowMajor>();
}
} // namespace eigenpy