From 6007131f62f3b55a96fc64ae58b647d5c11e3b81 Mon Sep 17 00:00:00 2001 From: Reimar Leike <reimar@leike.name> Date: Tue, 29 Jan 2019 10:17:48 +0100 Subject: [PATCH] added docu to the checks --- nifty5/extra.py | 43 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/nifty5/extra.py b/nifty5/extra.py index 02dd481de..1fccf4a48 100644 --- a/nifty5/extra.py +++ b/nifty5/extra.py @@ -74,25 +74,31 @@ def _check_linearity(op, domain_dtype, atol, rtol): def consistency_check(op, domain_dtype=np.float64, target_dtype=np.float64, atol=0, rtol=1e-7): - """Checks whether times(), adjoint_times(), inverse_times() and + """ + Checks an operator for algebraic consistency of its capabilities. + + Checks whether times(), adjoint_times(), inverse_times() and adjoint_inverse_times() (if in capability list) is implemented - consistently. Additionally, it checks whether the operator is linear - actually. + consistently. Additionally, it checks whether the operator is linear. Parameters ---------- op : LinearOperator Operator which shall be checked. - domain_dtype : FIXME + domain_dtype : dtype The data type of the random vectors in the operator's domain. Default is `np.float64`. - target_dtype : FIXME + target_dtype : dtype The data type of the random vectors in the operator's target. Default is `np.float64`. atol : float - FIXME. Default is 0. + Absolute tolerance for the check. If rtol is specified, + then satisfying any tolerance will let the check pass. + Default: 0. rtol : float - FIXME. Default is 0. + Relative tolerance for the check. If atol is specified, + then satisfying any tolerance will let the check pass. + Default: 0. """ if not isinstance(op, LinearOperator): raise TypeError('This test tests only linear operators.') @@ -157,7 +163,28 @@ def _check_consistency(op, loc, tol, ntries, do_metric): def check_value_gradient_consistency(op, loc, tol=1e-8, ntries=100): - """FIXME""" + """ + Checks the gradient (jacobian) of an operator against its value. + + Computes the gradient (jacobian) with finite differences and compares + it to the implemented gradient (jacobian). + + Parameters + ---------- + op : Operator + Operator which shall be checked. + loc : Field or MultiField + An Field or MultiField instance which has the same domain + as op. The location at which the gradient is checked + atol : float + Absolute tolerance for the check. If rtol is specified, + then satisfying any tolerance will let the check pass. + Default: 0. + rtol : float + Relative tolerance for the check. If atol is specified, + then satisfying any tolerance will let the check pass. + Default: 0 + """ _check_consistency(op, loc, tol, ntries, False) -- GitLab