aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/util/StaticAssert.h
Commit message (Collapse)AuthorAge
* Define EIGEN_CPLUSPLUS and replace most __cplusplus checks.Gravatar Antonio Sanchez2021-03-05
| | | | | | | | | | | | | | | The macro `__cplusplus` is not defined correctly in MSVC unless building with the the `/Zc:__cplusplus` flag. Instead, it defines `_MSVC_LANG` to the specified c++ standard version number. Here we introduce `EIGEN_CPLUSPLUS` which will contain the c++ version number both for MSVC and otherwise. This simplifies checks for supported features. Also replaced most instances of standard version checking via `__cplusplus` with the existing `EIGEN_COMP_CXXVER` macro for better clarity. Fixes: #2170
* 1)provide a better generic paddsub op implementationGravatar Guoqiang QI2021-01-13
| | | | | 2)make paddsub op support the Packet2cf/Packet4f/Packet2f in NEON 3)make paddsub op support the Packet2cf/Packet4f in SSE
* PR 655: Fix missing Eigen namespace in MacrosGravatar Justin Carpentier2019-06-05
|
* bug #1654: fix compilation with cuda and no c++11Gravatar Gael Guennebaud2019-01-09
|
* Add reshaped<>() shortcuts when returning vectors and remove the reshaping ↵Gravatar Gael Guennebaud2018-09-21
| | | | version of operator()(all)
* Implement better static assertion checking to make sure that the first ↵Gravatar Gael Guennebaud2018-03-09
| | | | assertion is a static one and not a runtime one.
* Add static assertion on selfadjoint-view's UpLo parameter.Gravatar Gael Guennebaud2018-03-09
|
* Fix a gcc7 warning: Wint-in-bool-contextGravatar Gael Guennebaud2017-06-26
|
* bug #1330: Cholmod supports double precision only, so let's trigger a static ↵Gravatar Gael Guennebaud2016-11-03
| | | | assertion if the scalar type does not match this requirement.
* Use complete nested namespace Eigen::internalGravatar Justin Carpentier2016-06-28
|
* Add TernaryFunctors and the betainc SpecialFunction.Gravatar Eugene Brevdo2016-06-02
| | | | | | | | | | | | | | | | | | | TernaryFunctors and their executors allow operations on 3-tuples of inputs. API fully implemented for Arrays and Tensors based on binary functors. Ported the cephes betainc function (regularized incomplete beta integral) to Eigen, with support for CPU and GPU, floats, doubles, and half types. Added unit tests in array.cpp and cxx11_tensor_cuda.cu Collapsed revision * Merged helper methods for betainc across floats and doubles. * Added TensorGlobalFunctions with betainc(). Removed betainc() from TensorBase. * Clean up CwiseTernaryOp checks, change igamma_helper to cephes_helper. * betainc: merge incbcf and incbd into incbeta_cfe. and more cleanup. * Update TernaryOp and SpecialFunctions (betainc) based on review comments.
* Add a EIGEN_MAX_CPP_VER option to limit the C++ version to be used.Gravatar Gael Guennebaud2016-05-20
|
* bug #1153: Don't rely on __GXX_EXPERIMENTAL_CXX0X__ to detect C++11 supportGravatar Christoph Hertzberg2016-01-26
|
* Add static assertion to y(), z(), w() accessorsGravatar Gael Guennebaud2016-01-20
|
* Add special functions to Eigen: lgamma, erf, erfc.Gravatar Eugene Brevdo2015-12-07
| | | | Includes CUDA support and unit tests.
* Implement wrapper for matrix-free iterative solversGravatar Gael Guennebaud2015-12-07
|
* Big 1009, part 2/2: add static assertion on LinearAccessBit in ↵Gravatar Gael Guennebaud2015-11-27
| | | | coeff(index)-like methods.
* Simplify cost computations based on HugeCost being smaller that unrolling limitGravatar Gael Guennebaud2015-10-28
|
* Refactoring of the cost model:Gravatar Gael Guennebaud2015-10-28
| | | | | | | | | | | - Dynamic is now an invalid value - introduce a HugeCost constant to be used for runtime-cost values or arbitrarily huge cost - add sanity checks for cost values: must be >=0 and not too large This change provides several benefits: - it fixes shortcoming is some cost computation where the Dynamic case was not properly handled. - it simplifies cost computation logic, and should avoid future similar shortcomings. - it allows to distinguish between different level of dynamic/huge/infinite cost - it should enable further simplifications in the computation of costs (save compilation time)
* Replace a static assert by a runtime one, fixes the build of unit tests on ARMGravatar Benoit Jacob2015-02-27
| | | | | Also safely assert in the non-implemented path that should never be taken in practice, and would return wrong results.
* bug #955 - Implement a rotating kernel alternative in the 3px4 gebp pathGravatar Benoit Jacob2015-02-18
| | | | | | | | This is substantially faster on ARM, where it's important to minimize the number of loads. This is specific to the case where all packet types are of size 4. I made my best attempt to minimize how dirty this is... opinions welcome. Eventually one could have a generic rotated kernel, but it would take some work to get there. Also, on sandy bridge, in my experience, it's not beneficial (even about 1% slower).
* Big 853: replace enable_if in Ref<> ctor by static assertions and add ↵Gravatar Gael Guennebaud2014-11-05
| | | | failtests for Ref<>
* Introduce unified macros to identify compiler, OS, and architecture. They ↵Gravatar Gael Guennebaud2014-11-04
| | | | are all defined in util/Macros.h and prefixed with EIGEN_COMP_, EIGEN_OS_, and EIGEN_ARCH_ respectively.
* merge with default branchGravatar Gael Guennebaud2014-07-02
|\
| * Removed the deprecated EIGEN2_SUPPORT, as previously announced. A ↵Gravatar Christoph Hertzberg2014-07-01
| | | | | | | | compilation error is raised, if this compile-switch is defined. The documentation references to the corresponding pages from Eigen3.2 now. Also, the Eigen2 testsuite has been removed.
* | Generalize static assertions on matching sizes to avoid the need for ↵Gravatar Gael Guennebaud2014-06-25
| | | | | | | | SizeAtCompileTime
| * Workaround clang error introduced by 3117036b80075390dbc46f60aa0d595e5a44661bGravatar Christoph Hertzberg2014-06-23
| | | | | | | | | | : "template argument for non-type template parameter is treated as function type 'bool (bool)'"
* | Product::coeff method are also OK for lazy products (including diagonal ↵Gravatar Gael Guennebaud2014-02-18
| | | | | | | | products)
* | Enable use of evaluators for noalias and lazyProduct, add conversion to ↵Gravatar Gael Guennebaud2013-12-03
|/ | | | scalar for inner products
* Add static assert that objects on stacks are not too big (bug #491).Gravatar Jitse Niesen2012-07-17
|
* Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.Gravatar Benoit Jacob2012-07-13
|
* Get rid of include directives inside namespace blocks (bug #339).Gravatar Jitse Niesen2012-04-15
|
* fig bug #396: add a static assertion on the storage order of a sparse-sparse ↵Gravatar Gael Guennebaud2011-12-15
| | | | coeff-wise binary op
* fix bug #384: add a static assertion on the Index type which has to be signedGravatar Gael Guennebaud2011-12-04
|
* Bugs 157 and 377 - General tightening/testing of vectorwise ops:Gravatar Benoit Jacob2011-11-18
| | | | | | | | | | | | | | | | | | * add lots of static assertions making it very explicit when all these ops are supposed to work: ** all ops require the rhs vector to go in the right direction ** all ops already require that the lhs and rhs are of the same kind (matrix vs vector) otherwise we'd have to do complex work ** multiplicative ops (introduced Kibeom's patch) are restricted to arrays, if only because for matrices they could be ambiguous. * add a new test, vectorwiseop.cpp. * these compound-assign operators used to be implemented with for loops: for(Index j=0; j<subVectors(); ++j) subVector(j).array() += other.derived().array(); This didn't seem to be needed; replaced by using expressions like operator+ and operator- did.
* In the Matrix constructor taking (rows, cols), statically assert that the ↵Gravatar Benoit Jacob2011-11-05
| | | | | | types are integer. The 2D vector ctor taking (x, y) is not concerned.
* forgot to include this file in previous commitGravatar Gael Guennebaud2011-06-01
|
* fix EIGEN_STATIC_ASSERT_LVALUE (fix found by failtests)Gravatar Benoit Jacob2011-02-06
|
* lots more EIGEN2_SUPPORT fixes. Now several of the most important core tests ↵Gravatar Benoit Jacob2011-01-20
| | | | build and succeed.
* fix MSVC warnings, bug #143Gravatar Jose Luis Blanco2010-12-29
|
* bug #54 - really fix const correctness except in SparseGravatar Benoit Jacob2010-12-22
|
* bug #54 - The big Map const-correctness changesGravatar Benoit Jacob2010-12-10
|
* fix the build of eigensolver_complex test.Gravatar Benoit Jacob2010-12-09
| | | | | | it was calling the .value() method on an inner product, and that was blocked in bad zero-sized case. fixed by adding the .value() method to DenseBase for all 1x1 expressions, and allowing coeff accessors in ProductBase for 1x1 expressions.
* bug #86 : use internal:: namespace instead of ei_ prefixGravatar Benoit Jacob2010-10-25
|
* fix compilation on ubuntu 9.04's version of gcc 4.3 (yes, wtf)Gravatar Benoit Jacob2010-09-27
|
* Fixed Geometry module failures.Gravatar Hauke Heibel2010-08-17
| | | | | | | | | Removed default parameter from Transform. Removed the TransformXX typedefs. Removed references to TransformXX from unit tests and docs. Assigning Transforms to a sub-group is now forbidden at compile time. Products should now properly support the Isometry flag. Fixed alignment checks in MapBase.
* fix Transform() constructor taking a Transform with other mode.Gravatar Benoit Jacob2010-08-16
| | | | Not really tested as the geometry tests are currently busted.
* further improve compilation error message for array+=matrixGravatar Gael Guennebaud2010-08-16
|
* Safeguarded some Transform functions with compile time asserts.Gravatar Hauke Heibel2010-07-29
| | | | Added missing static Identity() to Rotation2D, AngleAxis.
* add an OpenGL module simplifying the way you can pass Eigen's objects to GLGravatar Gael Guennebaud2010-07-22
|