STensor syten::STensorImpl::hadamard_inv_diffdiff | ( | STensor const & | s, |
STensor | x, | ||
SBasisId const & | j_basis, | ||
SBasisId const & | i_basis, | ||
bool | minus | ||
) |
Given a diagonal square tensor s
and a square tensor x
, approximates \( x_i^j \left( \frac{1}{s_j - s_i} \pm \frac{1}{s_j + s_i} \right) \).
s | diagonal input tensor whose diagonal differences are inverted |
x | input tensor of which the Hadamard product is taken |
j_basis | ID of the basis taken as the minuend in the difference |
i_basis | ID of the basis taken as the subtrahend in the difference |
minus | if true, select - in ± , if false, select + |
References syten::STensorImpl::STensor::autodiff_enabled(), syten::STensorImpl::STensor::bi(), syten::STensorImpl::STensor::get(), SYTEN_ASSERT, SYTEN_ASSERT_MSG, and SYTEN_BROADENING_EPSILON.
Referenced by syten::STensorImpl::Autodiff::svd_adjoint_evaluator().