Submodule containing implementations for extended diffstruc array operations
Get the partial derivative for the pad1d operation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(inout) | :: | this | |||
| type(array_type), | intent(in) | :: | upstream_grad |
Get the partial derivative for the pad2d operation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(inout) | :: | this | |||
| type(array_type), | intent(in) | :: | upstream_grad |
Get the partial derivative for the pad3d operation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(inout) | :: | this | |||
| type(array_type), | intent(in) | :: | upstream_grad |
Accumulate corner gradients for 2D padding - raw array version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in), | dimension(:,:) | :: | upstream_grad | ||
| real(kind=real32), | intent(inout), | dimension(:,:) | :: | output | ||
| integer, | intent(in), | dimension(4) | :: | input_shape | ||
| integer, | intent(in), | dimension(:) | :: | indices | ||
| integer, | intent(in), | dimension(:,:) | :: | adj_ja |
Accumulate corner gradients for 3D padding - raw array version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in), | dimension(:,:) | :: | upstream_grad | ||
| real(kind=real32), | intent(inout), | dimension(:,:) | :: | output | ||
| integer, | intent(in), | dimension(5) | :: | input_shape | ||
| integer, | intent(in), | dimension(:) | :: | indices | ||
| integer, | intent(in), | dimension(:,:) | :: | adj_ja |
Accumulate edge gradients for 1D padding - raw array version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in), | dimension(:,:) | :: | upstream_grad | ||
| real(kind=real32), | intent(inout), | dimension(:,:) | :: | output | ||
| integer, | intent(in), | dimension(3) | :: | input_shape | ||
| integer, | intent(in), | dimension(:) | :: | indices | ||
| integer, | intent(in), | dimension(:,:) | :: | adj_ja |
Accumulate edge gradients for 2D padding - raw array version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in), | dimension(:,:) | :: | upstream_grad | ||
| real(kind=real32), | intent(inout), | dimension(:,:) | :: | output | ||
| integer, | intent(in), | dimension(4) | :: | input_shape | ||
| integer, | intent(in), | dimension(:) | :: | indices | ||
| integer, | intent(in), | dimension(:,:) | :: | adj_ja |
Accumulate edge gradients for 3D padding - raw array version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in), | dimension(:,:) | :: | upstream_grad | ||
| real(kind=real32), | intent(inout), | dimension(:,:) | :: | output | ||
| integer, | intent(in), | dimension(5) | :: | input_shape | ||
| integer, | intent(in), | dimension(:) | :: | indices | ||
| integer, | intent(in), | dimension(:,:) | :: | adj_ja |
Accumulate face gradients for 3D padding - raw array version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in), | dimension(:,:) | :: | upstream_grad | ||
| real(kind=real32), | intent(inout), | dimension(:,:) | :: | output | ||
| integer, | intent(in), | dimension(5) | :: | input_shape | ||
| integer, | intent(in), | dimension(:) | :: | indices | ||
| integer, | intent(in), | dimension(:,:) | :: | adj_ja |
Fill corner region for 2D padding
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(array_type), | intent(in) | :: | input | |||
| type(array_type), | intent(inout) | :: | output |
Fill corner region for 3D padding
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(array_type), | intent(in) | :: | input | |||
| type(array_type), | intent(inout) | :: | output |
Fill edge region for 1D padding
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(array_type), | intent(in) | :: | input | |||
| type(array_type), | intent(inout) | :: | output |
Fill edge region for 2D padding
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(array_type), | intent(in) | :: | input | |||
| type(array_type), | intent(inout) | :: | output |
Fill edge region for 3D padding
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(array_type), | intent(in) | :: | input | |||
| type(array_type), | intent(inout) | :: | output |
Fill face region for 3D padding
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(array_type), | intent(in) | :: | input | |||
| type(array_type), | intent(inout) | :: | output |
Get the partial derivative for the pad1d operation - raw array version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(in) | :: | this | |||
| real(kind=real32), | intent(in), | dimension(:,:) | :: | upstream_grad | ||
| real(kind=real32), | intent(out), | dimension(:,:) | :: | output |
Get the partial derivative for the pad2d operation - raw array version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(in) | :: | this | |||
| real(kind=real32), | intent(in), | dimension(:,:) | :: | upstream_grad | ||
| real(kind=real32), | intent(out), | dimension(:,:) | :: | output |
Get the partial derivative for the pad3d operation - raw array version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(array_type), | intent(in) | :: | this | |||
| real(kind=real32), | intent(in), | dimension(:,:) | :: | upstream_grad | ||
| real(kind=real32), | intent(out), | dimension(:,:) | :: | output |
1D padding operation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(array_type), | intent(in), | target | :: | input | ||
| type(facets_type), | intent(in) | :: | facets | |||
| integer, | intent(in) | :: | pad_size | |||
| integer, | intent(in) | :: | imethod |
2D padding operation
| Type | Intent | Optional | 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 |
3D padding operation
| Type | Intent | Optional | 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 |