Gram Interface

public interface Gram

Compute the Gram matrix .

Description

This interface provides methods for computing the Gram matrix associated to a basis of abstract_vector .

Example

The example below assumes that you have already extended the abstract_vector_rdp class to define your own my_real_vector type.

    type(my_real_vector), dimension(10) :: X
    real(dp), dimension(:, :), allocatable :: G

    ! ... Part of your code where you initialize everything ...

    G = Gram(X)

    ! ... Rest of your code ...

Module Procedures

private function gram_matrix_rsp(X) result(G)

Computes the inner product/Gram matrix associated with the basis .

Arguments

Type IntentOptional Attributes Name
class(abstract_vector_rsp), intent(in) :: X(:)

Return Value real(kind=sp), (size(X),size(X))

private function gram_matrix_rdp(X) result(G)

Computes the inner product/Gram matrix associated with the basis .

Arguments

Type IntentOptional Attributes Name
class(abstract_vector_rdp), intent(in) :: X(:)

Return Value real(kind=dp), (size(X),size(X))

private function gram_matrix_csp(X) result(G)

Computes the inner product/Gram matrix associated with the basis .

Arguments

Type IntentOptional Attributes Name
class(abstract_vector_csp), intent(in) :: X(:)

Return Value complex(kind=sp), (size(X),size(X))

private function gram_matrix_cdp(X) result(G)

Computes the inner product/Gram matrix associated with the basis .

Arguments

Type IntentOptional Attributes Name
class(abstract_vector_cdp), intent(in) :: X(:)

Return Value complex(kind=dp), (size(X),size(X))