mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
* added a lazyAssign overload skipping .lazy() such that c = (<xpr>).lazy() such that
lazyAssign overloads of <xpr> are automatically called (this also reduces assign instansiations)
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
SET(Eigen_HEADERS Core CoreDeclarations LU Cholesky QR Geometry Sparse Array)
|
SET(Eigen_HEADERS Core CoreDeclarations LU Cholesky QR Geometry Sparse Array)
|
||||||
|
|
||||||
IF(TEST_LIB)
|
IF(BUILD_LIB)
|
||||||
SET(Eigen_SRCS
|
SET(Eigen_SRCS
|
||||||
src/Core/CoreInstantiations.cpp
|
src/Core/CoreInstantiations.cpp
|
||||||
src/Cholesky/CholeskyInstantiations.cpp
|
src/Cholesky/CholeskyInstantiations.cpp
|
||||||
@@ -8,7 +8,12 @@ IF(TEST_LIB)
|
|||||||
)
|
)
|
||||||
|
|
||||||
ADD_LIBRARY(Eigen2 SHARED ${Eigen_SRCS})
|
ADD_LIBRARY(Eigen2 SHARED ${Eigen_SRCS})
|
||||||
ENDIF(TEST_LIB)
|
|
||||||
|
INSTALL(TARGETS Eigen2
|
||||||
|
RUNTIME DESTINATION bin
|
||||||
|
LIBRARY DESTINATION lib
|
||||||
|
ARCHIVE DESTINATION lib)
|
||||||
|
ENDIF(BUILD_LIB)
|
||||||
|
|
||||||
IF(CMAKE_COMPILER_IS_GNUCXX)
|
IF(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g1 -O2")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g1 -O2")
|
||||||
@@ -26,11 +31,4 @@ INSTALL(FILES
|
|||||||
DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen
|
DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen
|
||||||
)
|
)
|
||||||
|
|
||||||
IF(TEST_LIB)
|
|
||||||
INSTALL(TARGETS Eigen2
|
|
||||||
RUNTIME DESTINATION bin
|
|
||||||
LIBRARY DESTINATION lib
|
|
||||||
ARCHIVE DESTINATION lib)
|
|
||||||
ENDIF(TEST_LIB)
|
|
||||||
|
|
||||||
ADD_SUBDIRECTORY(src)
|
ADD_SUBDIRECTORY(src)
|
||||||
@@ -212,9 +212,14 @@ template<typename Derived> class MatrixBase
|
|||||||
return this->operator=<Derived>(other);
|
return this->operator=<Derived>(other);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Overloaded for optimal product evaluation */
|
/** Overloaded for cache friendly product evaluation */
|
||||||
template<typename Derived1, typename Derived2>
|
template<typename Lhs, typename Rhs>
|
||||||
Derived& lazyAssign(const Product<Derived1,Derived2,CacheFriendlyProduct>& product);
|
Derived& lazyAssign(const Product<Lhs,Rhs,CacheFriendlyProduct>& product);
|
||||||
|
|
||||||
|
/** Overloaded for cache friendly product evaluation */
|
||||||
|
template<typename OtherDerived>
|
||||||
|
Derived& lazyAssign(const Flagged<OtherDerived, 0, EvalBeforeNestingBit | EvalBeforeAssigningBit>& other)
|
||||||
|
{ lazyAssign(other._expression()); }
|
||||||
|
|
||||||
/** Overloaded for sparse product evaluation */
|
/** Overloaded for sparse product evaluation */
|
||||||
template<typename Derived1, typename Derived2>
|
template<typename Derived1, typename Derived2>
|
||||||
|
|||||||
Reference in New Issue
Block a user