PartMC  2.4.0
Public Attributes | List of all members
pmc_integer_rmap2::integer_rmap2_t Type Reference

A map $\mathbb{Z} \to \mathbb{Z} \times \mathbb{Z}$, together with its multi-valued inverse. More...

Public Attributes

type(integer_varray_tforward1
 Forward map to first range (single valued). More...
 
type(integer_varray_tforward2
 Forward map to second range (single valued). More...
 
type(integer_varray_t), dimension(:, :), allocatable inverse
 Inverse map (multi-valued). More...
 
type(integer_varray_tindex
 Forward map to inverse map entries (single valued). More...
 

Detailed Description

A map $\mathbb{Z} \to \mathbb{Z} \times \mathbb{Z}$, together with its multi-valued inverse.

The forward map takes an integer $i$ in the domain $\{1, \ldots, N_{\rm d}\}$ to integers $(j_1,j_2)$ in the range $\{1, \ldots, N_{\rm r,1} \times \{1, \ldots, N_{\rm r,2}\}$. This is stored with j_1 = integer_rmap2%forward1%entry(i) and j_2 = integer_rmap2%forward2%entry(i). This map is not assumed to be one-to-one or onto.

The inverse map is multi-valued, with integer_rmap2%inverse(j_1, j_2) containing all the inverses of $(j_1, j_2)$. The entry numbers in the inverse map are given by inverse_rmap%index. The relationships between the forward and reverse maps are as follows.

Given i, let:

 j_1 = integer_rmap2%forward1%entry(i)
 j_2 = integer_rmap2%forward2%entry(i)
 k = integer_rmap2%index%entry(i)
 

Then:

 integer_rmap2%inverse(j_1, j_2)%entry(k) == i
 

Alternatively, given j_1, j_2 and k, let:

 i = integer_rmap2%inverse(j_1, j_2)%entry(k)
 

Then:

 integer_rmap2%forward1%entry(i) == j_1
 integer_rmap2%forward2%entry(i) == j_2
 integer_rmap2%index%entry(i) == k
 

Definition at line 53 of file integer_rmap2.F90.

Member Data Documentation

◆ forward1

type(integer_varray_t) pmc_integer_rmap2::integer_rmap2_t::forward1

Forward map to first range (single valued).

Definition at line 55 of file integer_rmap2.F90.

◆ forward2

type(integer_varray_t) pmc_integer_rmap2::integer_rmap2_t::forward2

Forward map to second range (single valued).

Definition at line 57 of file integer_rmap2.F90.

◆ index

type(integer_varray_t) pmc_integer_rmap2::integer_rmap2_t::index

Forward map to inverse map entries (single valued).

Definition at line 61 of file integer_rmap2.F90.

◆ inverse

type(integer_varray_t), dimension(:, :), allocatable pmc_integer_rmap2::integer_rmap2_t::inverse

Inverse map (multi-valued).

Definition at line 59 of file integer_rmap2.F90.


The documentation for this type was generated from the following file: