aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/util
Commit message (Collapse)AuthorAge
* bug #1680: improve MSVC inlining by declaring many triavial constructors and ↵Gravatar Gael Guennebaud2019-02-15
| | | | accessors as STRONG_INLINE.
* bug #1678: Fix lack of __FMA__ macro on MSVC with AVX512Gravatar Gael Guennebaud2019-02-15
|
* bug #1676: workaround GCC's bug in c++17 mode.Gravatar Gael Guennebaud2019-02-07
|
* Fix conflicts and mergeGravatar Gael Guennebaud2019-01-30
|\
* | Replace host_define.h with cuda_runtime_api.hGravatar nluehr2019-01-18
| |
* | PR 567: makes all dense solvers inherit SoverBase (LU,Cholesky,QR,SVD).Gravatar Patrick Peltzer2019-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | This changeset also includes: * add HouseholderSequence::conjugateIf * define int as the StorageIndex type for all dense solvers * dedicated unit tests, including assertion checking * _check_solve_assertion(): this method can be implemented in derived solver classes to implement custom checks * CompleteOrthogonalDecompositions: add applyZOnTheLeftInPlace, fix scalar type in applyZAdjointOnTheLeftInPlace(), add missing assertions * Cholesky: add missing assertions * FullPivHouseholderQR: Corrected Scalar type in _solve_impl() * BDCSVD: Unambiguous return type for ternary operator * SVDBase: Corrected Scalar type in _solve_impl()
* | TypoGravatar Gael Guennebaud2019-01-15
| |
* | PR 571: Implements an accurate argument reduction algorithm for huge inputs ↵Gravatar Gael Guennebaud2019-01-14
| | | | | | | | | | | | | | | | | | of sin/cos and call it instead of falling back to std::sin/std::cos. This makes both the small and huge argument cases faster because: - for small inputs this removes the last pselect - for large inputs only the reduction part follows a scalar path, the rest use the same SIMD path as the small-argument case.
* | Replace compiler's alignas/alignof extension by respective c++11 keywords ↵Gravatar Gael Guennebaud2019-01-11
| | | | | | | | when available. This also fix a compilation issue with gcc-4.7.
* | bug #1654: fix compilation with cuda and no c++11Gravatar Gael Guennebaud2019-01-09
| |
| * Introducing "vectorized" byte on unpacket_traits structsGravatar Gustavo Lima Chaves2018-12-19
|/ | | | | | | | | | | | | | | | | | | | | This is a preparation to a change on gebp_traits, where a new template argument will be introduced to dictate the packet size, so it won't be bound to the current/max packet size only anymore. By having packet types defined early on gebp_traits, one has now to act on packet types, not scalars anymore, for the enum values defined on that class. One approach for reaching the vectorizable/size properties one needs there could be getting the packet's scalar again with unpacket_traits<>, then the size/Vectorizable enum entries from packet_traits<>. It turns out guards like "#ifndef EIGEN_VECTORIZE_AVX512" at AVX/PacketMath.h will hide smaller packet variations of packet_traits<> for some types (and it makes sense to keep that). In other words, one can't go back to the scalar and create a new PacketType, as this will always lead to the maximum packet type for the architecture. The less costly/invasive solution for that, thus, is to add the vectorizable info on every unpacket_traits struct as well.
* Enable FMA with MSVC (through /arch:AVX2). To make this possible, I also has ↵Gravatar Gael Guennebaud2018-12-07
| | | | to turn the #warning regarding AVX512-FMA to a #error.
* bug #1638: add a warning if avx512 is enabled without SSE/AVX FMAGravatar Gael Guennebaud2018-12-07
|
* #elif -> #else to fix GPU build.Gravatar Rasmus Munk Larsen2018-12-05
|
* Update checks in ConfigureVectorization.hGravatar Eugene Zhulenev2018-12-03
|
* Do not disable alignment with EIGEN_GPUCCGravatar Eugene Zhulenev2018-12-03
|
* Fix typosGravatar Patrik Huber2018-11-23
|
* Fix typo in comment on EIGEN_MAX_STATIC_ALIGN_BYTESGravatar Nikolaus Demmel2018-11-14
|
* Recent xcode versions does support EIGEN_HAS_STATIC_ARRAY_TEMPLATEGravatar Gael Guennebaud2018-11-09
|
* Fix code formatGravatar Eugene Zhulenev2018-11-02
|
* Workaround nbcc+msvc compiler bugGravatar Eugene Zhulenev2018-11-02
|
* bug #1618: Use different power-of-2 check to avoid MSVC warningGravatar Christoph Hertzberg2018-11-01
|
* Do not rely on the compiler generating __device__ functions for constexpr in ↵Gravatar Rasmus Munk Larsen2018-10-22
| | | | | | | | | | | | | | | | | Cuda (via EIGEN_CONSTEXPR_ARE_DEVICE_FUNC. This breaks several target in the TensorFlow Cuda build, e.g., INFO: From Compiling tensorflow/core/kernels/maxpooling_op_gpu.cu.cc: /b/f/w/run/external/eigen_archive/Eigen/src/Core/arch/GPU/Half.h(197): error: calling a __host__ function("std::equal_to<float> ::operator () const") from a __global__ function("tensorflow::_NV_ANON_NAMESPACE::MaxPoolGradBackwardNoMaskNHWC< ::Eigen::half> ") is not allowed /b/f/w/run/external/eigen_archive/Eigen/src/Core/arch/GPU/Half.h(197): error: identifier "std::equal_to<float> ::operator () const" is undefined in device code" /b/f/w/run/external/eigen_archive/Eigen/src/Core/arch/GPU/Half.h(197): error: calling a __host__ function("std::equal_to<float> ::operator () const") from a __global__ function("tensorflow::_NV_ANON_NAMESPACE::MaxPoolGradBackwardNoMaskNCHW< ::Eigen::half> ") is not allowed /b/f/w/run/external/eigen_archive/Eigen/src/Core/arch/GPU/Half.h(197): error: identifier "std::equal_to<float> ::operator () const" is undefined in device code 4 errors detected in the compilation of "/tmp/tmpxft_00000011_00000000-6_maxpooling_op_gpu.cu.cpp1.ii". ERROR: /tmpfs/tensor_flow/tensorflow/core/kernels/BUILD:3753:1: output 'tensorflow/core/kernels/_objs/pooling_ops_gpu/maxpooling_op_gpu.cu.pic.o' was not created ERROR: /tmpfs/tensor_flow/tensorflow/core/kernels/BUILD:3753:1: Couldn't build file tensorflow/core/kernels/_objs/pooling_ops_gpu/maxpooling_op_gpu.cu.pic.o: not all outputs were created or valid
* Only set EIGEN_CONSTEXPR_ARE_DEVICE_FUNC for clang++ if ↵Gravatar Rasmus Munk Larsen2018-10-18
| | | | cxx_relaxed_constexpr is available.
* Use void type if stl-style iterators are not supportedGravatar Eugene Zhulenev2018-10-10
|
* Compile time detection for unimplemented stl-style iteratorsGravatar Eugene Zhulenev2018-10-09
|
* mergeGravatar Gael Guennebaud2018-10-08
|\
| * Implement a better workaround for GCC's bug #87544Gravatar Gael Guennebaud2018-10-07
| |
| * Workaround gcc bug making it trigger an invalid warningGravatar Gael Guennebaud2018-10-07
| |
* | Simplify API by removing allCols/allRows and reusing rowwise/colwise to ↵Gravatar Gael Guennebaud2018-10-05
| | | | | | | | define iterators over rows/columns
* | Move iterators to internal, improve doc, make unit test c++03 friendlyGravatar Gael Guennebaud2018-10-03
| |
| * fix unused warningGravatar Gael Guennebaud2018-10-03
| |
* | Add pointer-based iterator for direct-access expressionsGravatar Gael Guennebaud2018-10-02
| |
* | Factorize RowsProxy/ColsProxy and related iterators using subVector<>(Index)Gravatar Gael Guennebaud2018-10-02
| |
* | bug #231: initial implementation of STL iterators for dense expressionsGravatar Gael Guennebaud2018-10-01
| |
| * Merged in deven-amd/eigen/HIP_fixes (pull request PR-518)Gravatar Christoph Hertzberg2018-10-01
|/| | | | | | | PR with HIP specific fixes (for the eigen nightly regression failures in HIP mode)
| * This commit contains the following (HIP specific) updates:Gravatar Deven Desai2018-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h Changing "pass-by-reference" argument to be "pass-by-value" instead (in a __global__ function decl). "pass-by-reference" arguments to __global__ functions are unwise, and will be explicitly flagged as errors by the newer versions of HIP. - Eigen/src/Core/util/Memory.h - unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h Changes introduced in recent commits breaks the HIP compile. Adding EIGEN_DEVICE_FUNC attribute to some functions and calling ::malloc/free instead of the corresponding std:: versions to get the HIP compile working again - unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h Change introduced a recent commit breaks the HIP compile (link stage errors out due to failure to inline a function). Disabling the recently introduced code (only for HIP compile), to get the eigen nightly testing going again. Will submit another PR once we have te proper fix. - Eigen/src/Core/util/ConfigureVectorization.h Enabling GPU VECTOR support when HIP compiler is in use (for both the host and device compile phases)
* | Provide EIGEN_OVERRIDE and EIGEN_FINAL macros to mark virtual function overridesGravatar Christoph Hertzberg2018-09-24
|/
* oops, I've been too fast in previous copy/pasteGravatar Gael Guennebaud2018-09-27
|
* #pragma GCC diagnostic push/pop is not supported prioro to gcc 4.6Gravatar Gael Guennebaud2018-09-27
|
* Add reshaped<>() shortcuts when returning vectors and remove the reshaping ↵Gravatar Gael Guennebaud2018-09-21
| | | | version of operator()(all)
* merge with default EigenGravatar Gael Guennebaud2018-09-21
|\
| * Merged indexing cleanup (pull request PR-506)Gravatar Gael Guennebaud2018-09-21
| |\
| * | Fix EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE for AVX512 or ↵Gravatar Gael Guennebaud2018-09-21
| | | | | | | | | | | | | | | | | | AVX with malloc aligned on 8 bytes only. This change also make it future proof for AVX1024
| | * Fix docGravatar Gael Guennebaud2018-09-20
| | |
* | | Update reshaped API to use RowMajor/ColMajor directly as integral values ↵Gravatar Gael Guennebaud2018-09-19
| | | | | | | | | | | | | | | | | | instead of introducing RowOrder/ColOrder types. The API changed from A.respahed(rows,cols,RowOrder) to A.template reshaped<RowOrder>(rows,cols).
| | * ease transition by adding placeholders::all/last/and as deprecatedGravatar Gael Guennebaud2018-09-17
| | |
| | * Move all, last, end from Eigen::placeholders namespace to Eigen::, and ↵Gravatar Gael Guennebaud2018-09-15
| |/ | | | | | | rename end to lastp1 to avoid conflicts with std::end.
| * Fix gebp kernel for real+complex in case only reals are vectorized (e.g., ↵Gravatar Gael Guennebaud2018-09-20
| | | | | | | | | | | | AVX512). This commit also removes "half-packet" from data-mappers: it was not used and conceptually broken anyways.
| * Rename Symbolic namespace to symbolic to be consistent with numext namespaceGravatar Gael Guennebaud2018-09-15
| |