diffstruc__operations_comparison Module

This module contains comparison operations for the diffstruc library.


Uses


Interfaces

public interface merge

  • private function merge_array(tsource, fsource, mask) result(c)

    Merge two autodiff arrays based on a mask

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: tsource
    class(array_type), intent(in), target :: fsource
    logical, intent(in), dimension(:,:) :: mask

    Return Value type(array_type), pointer

  • private function merge_scalar(tsource, fsource, mask) result(c)

    Merge two autodiff arrays based on a mask

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: tsource
    real(kind=real32), intent(in) :: fsource
    logical, intent(in), dimension(:,:) :: mask

    Return Value type(array_type), pointer

  • private function scalar_merge(tsource, fsource, mask) result(c)

    Merge two autodiff arrays based on a mask

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real32), intent(in) :: tsource
    class(array_type), intent(in), target :: fsource
    logical, intent(in), dimension(:,:) :: mask

    Return Value type(array_type), pointer

  • private function merge_real2d(tsource, fsource, mask) result(c)

    Merge two autodiff arrays based on a mask

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: tsource
    real(kind=real32), intent(in), dimension(:,:) :: fsource
    logical, intent(in), dimension(:,:) :: mask

    Return Value type(array_type), pointer

public interface operator(.ge.)

  • private function ge_scalar(a, b) result(c)

    Greater than or equal to comparison between autodiff array and scalar

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: a
    real(kind=real32), intent(in) :: b

    Return Value logical, dimension(size(a%val,1), size(a%val,2))

public interface operator(.gt.)

  • private function gt_scalar(a, b) result(c)

    Greater than comparison between autodiff array and scalar

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: a
    real(kind=real32), intent(in) :: b

    Return Value logical, dimension(size(a%val,1), size(a%val,2))

public interface operator(.le.)

  • private function le_scalar(a, b) result(c)

    Less than or equal tocomparison between autodiff array and scalar

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: a
    real(kind=real32), intent(in) :: b

    Return Value logical, dimension(size(a%val,1), size(a%val,2))

public interface operator(.lt.)

  • private function lt_scalar(a, b) result(c)

    Less than comparison between autodiff array and scalar

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: a
    real(kind=real32), intent(in) :: b

    Return Value logical, dimension(size(a%val,1), size(a%val,2))


Functions

private function ge_scalar(a, b) result(c)

Greater than or equal to comparison between autodiff array and scalar

Arguments

Type IntentOptional Attributes Name
class(array_type), intent(in), target :: a
real(kind=real32), intent(in) :: b

Return Value logical, dimension(size(a%val,1), size(a%val,2))

private function get_partial_merge_left(this, upstream_grad) result(output)

Arguments

Type IntentOptional Attributes Name
class(array_type), intent(inout) :: this
type(array_type), intent(in) :: upstream_grad

Return Value type(array_type)

private function get_partial_merge_right(this, upstream_grad) result(output)

Arguments

Type IntentOptional Attributes Name
class(array_type), intent(inout) :: this
type(array_type), intent(in) :: upstream_grad

Return Value type(array_type)

private function gt_scalar(a, b) result(c)

Greater than comparison between autodiff array and scalar

Arguments

Type IntentOptional Attributes Name
class(array_type), intent(in), target :: a
real(kind=real32), intent(in) :: b

Return Value logical, dimension(size(a%val,1), size(a%val,2))

private function le_scalar(a, b) result(c)

Less than or equal tocomparison between autodiff array and scalar

Arguments

Type IntentOptional Attributes Name
class(array_type), intent(in), target :: a
real(kind=real32), intent(in) :: b

Return Value logical, dimension(size(a%val,1), size(a%val,2))

private function lt_scalar(a, b) result(c)

Less than comparison between autodiff array and scalar

Arguments

Type IntentOptional Attributes Name
class(array_type), intent(in), target :: a
real(kind=real32), intent(in) :: b

Return Value logical, dimension(size(a%val,1), size(a%val,2))

private function merge_array(tsource, fsource, mask) result(c)

Merge two autodiff arrays based on a mask

Arguments

Type IntentOptional Attributes Name
class(array_type), intent(in), target :: tsource
class(array_type), intent(in), target :: fsource
logical, intent(in), dimension(:,:) :: mask

Return Value type(array_type), pointer

private function merge_real2d(tsource, fsource, mask) result(c)

Merge two autodiff arrays based on a mask

Arguments

Type IntentOptional Attributes Name
class(array_type), intent(in), target :: tsource
real(kind=real32), intent(in), dimension(:,:) :: fsource
logical, intent(in), dimension(:,:) :: mask

Return Value type(array_type), pointer

private function merge_scalar(tsource, fsource, mask) result(c)

Merge two autodiff arrays based on a mask

Arguments

Type IntentOptional Attributes Name
class(array_type), intent(in), target :: tsource
real(kind=real32), intent(in) :: fsource
logical, intent(in), dimension(:,:) :: mask

Return Value type(array_type), pointer

private function scalar_merge(tsource, fsource, mask) result(c)

Merge two autodiff arrays based on a mask

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in) :: tsource
class(array_type), intent(in), target :: fsource
logical, intent(in), dimension(:,:) :: mask

Return Value type(array_type), pointer


Subroutines

private pure subroutine get_partial_merge_left_val(this, upstream_grad, output)

Arguments

Type IntentOptional Attributes Name
class(array_type), intent(in) :: this
real(kind=real32), intent(in), dimension(:,:) :: upstream_grad
real(kind=real32), intent(out), dimension(:,:) :: output

private pure subroutine get_partial_merge_right_val(this, upstream_grad, output)

Arguments

Type IntentOptional Attributes Name
class(array_type), intent(in) :: this
real(kind=real32), intent(in), dimension(:,:) :: upstream_grad
real(kind=real32), intent(out), dimension(:,:) :: output