athena__diffstruc_extd Module

Module for extended differential structure types for Athena


Uses


Interfaces

interface

  • public module function add_bias(input, bias, dim, dim_act_on_shape) result(output)

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: input
    class(array_type), intent(in), target :: bias
    integer, intent(in) :: dim
    logical, intent(in), optional :: dim_act_on_shape

    Return Value type(array_type), pointer

public interface add_layers

  • private module function add_array_ptr(a, idx1, idx2) result(c)

    Arguments

    Type IntentOptional Attributes Name
    type(array_ptr_type), intent(in), dimension(:) :: a
    integer, intent(in) :: idx1
    integer, intent(in) :: idx2

    Return Value type(array_type), pointer

interface

  • public module function avgpool1d(input, pool_size, stride) result(output)

    Arguments

    Type IntentOptional Attributes Name
    type(array_type), intent(in), target :: input
    integer, intent(in) :: pool_size
    integer, intent(in) :: stride

    Return Value type(array_type), pointer

interface

  • public module function avgpool2d(input, pool_size, stride) result(output)

    Arguments

    Type IntentOptional Attributes Name
    type(array_type), intent(in), target :: input
    integer, intent(in), dimension(2) :: pool_size
    integer, intent(in), dimension(2) :: stride

    Return Value type(array_type), pointer

interface

  • public module function avgpool3d(input, pool_size, stride) result(output)

    Arguments

    Type IntentOptional Attributes Name
    type(array_type), intent(in), target :: input
    integer, intent(in), dimension(3) :: pool_size
    integer, intent(in), dimension(3) :: stride

    Return Value type(array_type), pointer

interface

  • public module function batchnorm(input, params, momentum, mean, variance, epsilon) result(output)

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: input
    class(array_type), intent(in), target :: params
    real(kind=real32), intent(in) :: momentum
    real(kind=real32), intent(in), dimension(:) :: mean
    real(kind=real32), intent(in), dimension(:) :: variance
    real(kind=real32), intent(in) :: epsilon

    Return Value type(batchnorm_array_type), pointer

interface

  • public module function batchnorm_inference(input, params, mean, variance, epsilon) result(output)

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: input
    class(array_type), intent(in), target :: params
    real(kind=real32), intent(in), dimension(:) :: mean
    real(kind=real32), intent(in), dimension(:) :: variance
    real(kind=real32), intent(in) :: epsilon

    Return Value type(batchnorm_array_type), pointer

public interface concat_layers

  • private module function concat_array_ptr(a, idx1, idx2, dim) result(c)

    Arguments

    Type IntentOptional Attributes Name
    type(array_ptr_type), intent(in), dimension(:) :: a
    integer, intent(in) :: idx1
    integer, intent(in) :: idx2
    integer, intent(in) :: dim

    Return Value type(array_type), pointer

interface

  • public module function conv1d(input, kernel, stride, dilation) result(output)

    Arguments

    Type IntentOptional Attributes Name
    type(array_type), intent(in), target :: input
    type(array_type), intent(in), target :: kernel
    integer, intent(in) :: stride
    integer, intent(in) :: dilation

    Return Value type(array_type), pointer

interface

  • public module function conv2d(input, kernel, stride, dilation) result(output)

    Arguments

    Type IntentOptional Attributes Name
    type(array_type), intent(in), target :: input
    type(array_type), intent(in), target :: kernel
    integer, intent(in), dimension(2) :: stride
    integer, intent(in), dimension(2) :: dilation

    Return Value type(array_type), pointer

interface

  • public module function conv3d(input, kernel, stride, dilation) result(output)

    Arguments

    Type IntentOptional Attributes Name
    type(array_type), intent(in), target :: input
    type(array_type), intent(in), target :: kernel
    integer, intent(in), dimension(3) :: stride
    integer, intent(in), dimension(3) :: dilation

    Return Value type(array_type), pointer

interface

  • public module function duvenaud_propagate(vertex_features, edge_features, adj_ia, adj_ja) result(c)

    Duvenaud message passing function

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: vertex_features
    class(array_type), intent(in), target :: edge_features
    integer, intent(in), dimension(:) :: adj_ia
    integer, intent(in), dimension(:,:) :: adj_ja

    Return Value type(array_type), pointer

interface

  • public module function duvenaud_update(a, weight, adj_ia, min_degree, max_degree) result(c)

    Duvenaud update function

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: a
    class(array_type), intent(in), target :: weight
    integer, intent(in), dimension(:) :: adj_ia
    integer, intent(in) :: min_degree
    integer, intent(in) :: max_degree

    Return Value type(array_type), pointer

interface

  • public module function elem_scale(input, scale) result(c)

    Element-wise multiply: out[i,s] = input[i,s] * scale[i,1] Correctly handles non-sample-dependent scale vectors.

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: input
    class(array_type), intent(in), target :: scale

    Return Value type(array_type), pointer

interface

  • public module function gno_aggregate(features, edge_kernels, adj_ia, adj_ja, F_in, F_out) result(c)

    Aggregate neighbour messages using per-edge kernels

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: features
    class(array_type), intent(in), target :: edge_kernels
    integer, intent(in), dimension(:) :: adj_ia
    integer, intent(in), dimension(:,:) :: adj_ja
    integer, intent(in) :: F_in
    integer, intent(in) :: F_out

    Return Value type(array_type), pointer

interface

  • public module function gno_kernel_eval(coords, kernel_params, adj_ia, adj_ja, coord_dim, kernel_hidden, F_in, F_out) result(c)

    Evaluate GNO kernel MLP on every edge

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: coords
    class(array_type), intent(in), target :: kernel_params
    integer, intent(in), dimension(:) :: adj_ia
    integer, intent(in), dimension(:,:) :: adj_ja
    integer, intent(in) :: coord_dim
    integer, intent(in) :: kernel_hidden
    integer, intent(in) :: F_in
    integer, intent(in) :: F_out

    Return Value type(array_type), pointer

public interface huber

  • private module function huber_array(delta, gamma) result(output)

    Arguments

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

    Return Value type(array_type), pointer

interface

  • public module function kipf_propagate(vertex_features, adj_ia, adj_ja) result(c)

    Propagate values from one autodiff array to another

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: vertex_features
    integer, intent(in), dimension(:) :: adj_ia
    integer, intent(in), dimension(:,:) :: adj_ja

    Return Value type(array_type), pointer

interface

  • public module function kipf_update(a, weight, adj_ia) result(c)

    Update the message passing layer

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: a
    class(array_type), intent(in), target :: weight
    integer, intent(in), dimension(:) :: adj_ia

    Return Value type(array_type), pointer

interface

  • public module function lno_decode(spectral, poles, num_outputs, num_modes) result(c)

    Decode via Laplace basis: D(mu) @ spectral

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: spectral
    class(array_type), intent(in), target :: poles
    integer, intent(in) :: num_outputs
    integer, intent(in) :: num_modes

    Return Value type(array_type), pointer

interface

  • public module function lno_encode(input, poles, num_inputs, num_modes) result(c)

    Encode input via Laplace basis: E(mu) @ u

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: input
    class(array_type), intent(in), target :: poles
    integer, intent(in) :: num_inputs
    integer, intent(in) :: num_modes

    Return Value type(array_type), pointer

interface

  • public module function maxpool1d(input, pool_size, stride) result(output)

    Arguments

    Type IntentOptional Attributes Name
    type(array_type), intent(in), target :: input
    integer, intent(in) :: pool_size
    integer, intent(in) :: stride

    Return Value type(array_type), pointer

interface

  • public module function maxpool2d(input, pool_size, stride) result(output)

    Arguments

    Type IntentOptional Attributes Name
    type(array_type), intent(in), target :: input
    integer, intent(in), dimension(2) :: pool_size
    integer, intent(in), dimension(2) :: stride

    Return Value type(array_type), pointer

interface

  • public module function maxpool3d(input, pool_size, stride) result(output)

    Arguments

    Type IntentOptional Attributes Name
    type(array_type), intent(in), target :: input
    integer, intent(in), dimension(3) :: pool_size
    integer, intent(in), dimension(3) :: stride

    Return Value type(array_type), pointer

public interface merge_over_channels

  • private module function merge_scalar_over_channels(tsource, fsource, mask) result(output)

    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

interface

  • public module function ono_decode(mixed, basis_weights, num_inputs, num_basis) result(c)

    Decode via orthogonal basis: Q(B) @ mixed

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: mixed
    class(array_type), intent(in), target :: basis_weights
    integer, intent(in) :: num_inputs
    integer, intent(in) :: num_basis

    Return Value type(array_type), pointer

interface

  • public module function ono_encode(input, basis_weights, num_inputs, num_basis) result(c)

    Encode via orthogonal basis: Q(B)^T @ u

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: input
    class(array_type), intent(in), target :: basis_weights
    integer, intent(in) :: num_inputs
    integer, intent(in) :: num_basis

    Return Value type(array_type), pointer

interface

  • public module function pad1d(input, facets, pad_size, imethod) result(output)

    Arguments

    Type IntentOptional Attributes Name
    type(array_type), intent(in), target :: input
    type(facets_type), intent(in) :: facets
    integer, intent(in) :: pad_size
    integer, intent(in) :: imethod

    Return Value type(array_type), pointer

interface

  • public module function pad2d(input, facets, pad_size, imethod) result(output)

    Arguments

    Type IntentOptional Attributes Name
    type(array_type), intent(in), target :: input
    type(facets_type), intent(in), dimension(2) :: facets
    integer, intent(in), dimension(2) :: pad_size
    integer, intent(in) :: imethod

    Return Value type(array_type), pointer

interface

  • public module function pad3d(input, facets, pad_size, imethod) result(output)

    Arguments

    Type IntentOptional Attributes Name
    type(array_type), intent(in), target :: input
    type(facets_type), intent(in), dimension(3) :: facets
    integer, intent(in), dimension(3) :: pad_size
    integer, intent(in) :: imethod

    Return Value type(array_type), pointer

public interface piecewise

  • private module function piecewise_array(input, gradient, limit) result(output)

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: input
    real(kind=real32), intent(in) :: gradient
    real(kind=real32), intent(in) :: limit

    Return Value type(array_type), pointer

public interface softmax

  • private module function softmax_array(input, dim) result(output)

    Arguments

    Type IntentOptional Attributes Name
    class(array_type), intent(in), target :: input
    integer, intent(in) :: dim

    Return Value type(array_type), pointer

public interface swish

  • private module function swish_array(input, beta) result(output)

    Arguments

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

    Return Value type(array_type), pointer


Derived Types

type, public ::  array_ptr_type

Components

Type Visibility Attributes Name Initial
type(array_type), public, pointer :: array(:,:)

type, public, extends(array_type) ::  batchnorm_array_type

Components

Type Visibility Attributes Name Initial
real(kind=real32), public :: epsilon
real(kind=real32), public, dimension(:), allocatable :: mean
real(kind=real32), public, dimension(:), allocatable :: variance