verify_linop_axioms Interface

public interface verify_linop_axioms

Module Procedures

private function verify_linop_axioms_rsp(A, x, ntrials, tolerance, test_zero_map, test_adjoint) result(success)

Deals with optional arguments. Run all tests to verify axioms. Generate random vectors. Check additivity. Generate random vectors. generate the identical non-trivial alpha on all ranks

Check homogeneity. Exit if the test fails. Check that the zero vector is mapped to the zero vector. Exit if the test fails. Generate random vectors. Check adjoint consistency.

Arguments

Type IntentOptional Attributes Name
class(abstract_linop_rsp), intent(inout) :: A

Linear operator whose implementation needs to be tested.

class(abstract_vector_rsp), intent(in) :: x

Mold vector from the operator's domain (used to generate random inputs).

integer, intent(in), optional :: ntrials

Number of random samples generated for the tests.

real(kind=sp), intent(in), optional :: tolerance

Tolerance used for the axiom checks.

logical, intent(in), optional :: test_zero_map

Verify explicitly that the operator maps x = 0 to 0? (Default: .true.)

logical, intent(in), optional :: test_adjoint

Verify also the adjoint consistency <A u, v> = <u, A^H v>? (Default: .true.)

Return Value logical

private function verify_linop_axioms_rdp(A, x, ntrials, tolerance, test_zero_map, test_adjoint) result(success)

Deals with optional arguments. Run all tests to verify axioms. Generate random vectors. Check additivity. Generate random vectors. generate the identical non-trivial alpha on all ranks

Check homogeneity. Exit if the test fails. Check that the zero vector is mapped to the zero vector. Exit if the test fails. Generate random vectors. Check adjoint consistency.

Arguments

Type IntentOptional Attributes Name
class(abstract_linop_rdp), intent(inout) :: A

Linear operator whose implementation needs to be tested.

class(abstract_vector_rdp), intent(in) :: x

Mold vector from the operator's domain (used to generate random inputs).

integer, intent(in), optional :: ntrials

Number of random samples generated for the tests.

real(kind=dp), intent(in), optional :: tolerance

Tolerance used for the axiom checks.

logical, intent(in), optional :: test_zero_map

Verify explicitly that the operator maps x = 0 to 0? (Default: .true.)

logical, intent(in), optional :: test_adjoint

Verify also the adjoint consistency <A u, v> = <u, A^H v>? (Default: .true.)

Return Value logical

private function verify_linop_axioms_csp(A, x, ntrials, tolerance, test_zero_map, test_adjoint) result(success)

Deals with optional arguments. Run all tests to verify axioms. Generate random vectors. Check additivity. Generate random vectors. generate the identical non-trivial alpha on all ranks

Check homogeneity. Exit if the test fails. Check that the zero vector is mapped to the zero vector. Exit if the test fails. Generate random vectors. Check adjoint consistency.

Arguments

Type IntentOptional Attributes Name
class(abstract_linop_csp), intent(inout) :: A

Linear operator whose implementation needs to be tested.

class(abstract_vector_csp), intent(in) :: x

Mold vector from the operator's domain (used to generate random inputs).

integer, intent(in), optional :: ntrials

Number of random samples generated for the tests.

real(kind=sp), intent(in), optional :: tolerance

Tolerance used for the axiom checks.

logical, intent(in), optional :: test_zero_map

Verify explicitly that the operator maps x = 0 to 0? (Default: .true.)

logical, intent(in), optional :: test_adjoint

Verify also the adjoint consistency <A u, v> = <u, A^H v>? (Default: .true.)

Return Value logical

private function verify_linop_axioms_cdp(A, x, ntrials, tolerance, test_zero_map, test_adjoint) result(success)

Deals with optional arguments. Run all tests to verify axioms. Generate random vectors. Check additivity. Generate random vectors. generate the identical non-trivial alpha on all ranks

Check homogeneity. Exit if the test fails. Check that the zero vector is mapped to the zero vector. Exit if the test fails. Generate random vectors. Check adjoint consistency.

Arguments

Type IntentOptional Attributes Name
class(abstract_linop_cdp), intent(inout) :: A

Linear operator whose implementation needs to be tested.

class(abstract_vector_cdp), intent(in) :: x

Mold vector from the operator's domain (used to generate random inputs).

integer, intent(in), optional :: ntrials

Number of random samples generated for the tests.

real(kind=dp), intent(in), optional :: tolerance

Tolerance used for the axiom checks.

logical, intent(in), optional :: test_zero_map

Verify explicitly that the operator maps x = 0 to 0? (Default: .true.)

logical, intent(in), optional :: test_adjoint

Verify also the adjoint consistency <A u, v> = <u, A^H v>? (Default: .true.)

Return Value logical