| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
Fixes GCC conversion to non-scalar type requested compile error when
using boost::multiprecision::cpp_dec_float_50 as scalar type.
|
| |
|
|\
| |
| |
| |
| |
| | |
Derivative of the incomplete Gamma function and the sample of a Gamma random variable
Approved-by: Benoit Steiner <benoit.steiner.goog@gmail.com>
|
| | |
|
| |\
| |/
|/| |
|
| |
| |
| |
| | |
Previously, when computing the derivative, it used a relative error threshold. Now it uses an absolute error threshold. The behavior for computing the value is unchanged. This makes more sense since we do not expect the derivative to often be close to zero. This change makes the derivatives about 30% faster across the board. The error for the igamma_der_a is almost unchanged, while for gamma_sample_der_alpha it is a bit worse for float32 and unchanged for float64.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
variable.
In addition to igamma(a, x), this code implements:
* igamma_der_a(a, x) = d igamma(a, x) / da -- derivative of igamma with respect to the parameter
* gamma_sample_der_alpha(alpha, sample) -- reparameterization derivative of a Gamma(alpha, 1) random variable sample with respect to the alpha parameter
The derivatives are computed by forward mode differentiation of the igamma(a, x) code. Although gamma_sample_der_alpha can be implemented via igamma_der_a, a separate function is more accurate and efficient due to analytical cancellation of some terms. All three functions are implemented by a method parameterized with "mode" that always computes the derivatives, but does not return them unless required by the mode. The compiler is expected to (and, based on benchmarks, does) skip the unnecessary computations depending on the mode.
|
|\ \ |
|
| | | |
|
| |/
|/|
| |
| |
| |
| | |
The commit with Bessel functions i0e and i1e placed the ifdef/endif incorrectly,
causing i0e/i1e to be undefined when EIGEN_HAS_C99_MATH=0. These functions do not
actually require C99 math, so now they are always available.
|
| | |
|
|/
|
|
|
|
| |
1. Added new packet functions using SIMD for NByOne, OneByN cases
2. Modified existing packet functions to reduce index calculations when input stride is non-SIMD
3. Added 4 test cases to cover the new packet functions
|
|\
| |
| |
| |
| |
| | |
Exponentially scaled modified Bessel functions of order zero and one.
Approved-by: Benoit Steiner <benoit.steiner.goog@gmail.com>
|
| | |
|
|/
|
|
|
|
| |
The functions are conventionally called i0e and i1e. The exponentially scaled version is more numerically stable. The standard Bessel functions can be obtained as i0(x) = exp(|x|) i0e(x)
The code is ported from Cephes and tested against SciPy.
|
| |
|
|\
| |
| |
| | |
Rename scalar_clip_op to scalar_clamp_op to prevent collision with existing functor in TensorFlow.
|
| | |
|
| |
| |
| |
| | |
functor in TensorFlow.
|
|\ \
| |/
|/|
| | |
Fix bugs and typos in the contraction example of the tensor README
|
| | |
|
| |
| |
| |
| | |
Avoid 32-bit integer overflow in TensorSlicingOp
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Check for nan inputs and propagate them immediately. Limit the number of internal iterations to 2000 (same number as used by scipy.special.gammainc). This prevents an infinite loop when the function is called with nan or very large arguments.
Original change by mfirgunov@google.com
|
|\ \
| | |
| | |
| | | |
TensorFlow.
|
| |/
|/|
| |
| | |
issues for large FFTs. https://github.com/tensorflow/tensorflow/issues/10749#issuecomment-354557689
|
| |
| |
| |
| | |
https://bitbucket.org/eigen/eigen/pull-requests/351
|
|/
|
|
| |
TensorFlow.
|
| |
|
| |
|
|\
| |
| |
| | |
Add support for SuiteSparse's KLU routines
|
|\ \
| | |
| | |
| | | |
Issue with mpreal and std::numeric_limits::digits
|
|\ \ \
| | | |
| | | |
| | | | |
Make scaling work with non-square matrices
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
dispatching logic.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Added an example for a contraction to a scalar value to README.md
Approved-by: Jonas Harsch <jonas.harsch@gmail.com>
|
|\ \ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
As an example this reduces binary size of an TensorFlow demo app for Android by about 2.5%.
|
| |_|_|_|/
|/| | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If the cost is large enough then the thread count can be larger than the maximum
representable int, so just casting it to an int is undefined behavior.
Contributed by phurst@google.com.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
bug #1464 : Fixes construction of EulerAngles from 3D vector expression.
Approved-by: Tal Hadad <tal_hd@hotmail.com>
Approved-by: Abhijit Kundu <abhijit.kundu@gatech.edu>
|
| |_|/ / /
|/| | | |
| | | | |
| | | | | |
contraction of two second order tensors and how you can get the value of the result. I lost one day to get this doen so I think it will help some guys. I also added Eigen:: to the IndexPair and and array in the same example.
|
| | | | | |
|
|/ / / / |
|
| | | | |
|