ScalES-PPM
Loading...
Searching...
No Matches
Data Types | Functions/Subroutines | Variables
ppm_extents Module Reference

contains definition of extent and interval types and associated functions More...

Data Types

interface  assignment(=)
 
interface  char
 
type  extent
 Describes range as start and (directed) size. More...
 
interface  extent_end
 
type  extent_i8
 Describes range as start and (directed) size. More...
 
interface  extent_intersect
 
interface  extent_set_iinterval
 
interface  extent_shape
 
interface  extent_size
 
interface  extent_size_i8
 
interface  extent_start
 
interface  extents_do_intersect
 
type  iinterval
 interval including both limits, i.e. [first,last] where first and last are integral numbers, this exhibits a problem for 0-size intervals, because we also want to allow negative stride intervals like .e.g. 2..-3 of size -6, meaning there is no iinterval representation equal to the empty set More...
 
type  iinterval_dp
 
type  iinterval_i8
 interval including both limits, i.e. [first,last] where first and last are integral numbers, this exhibits a problem for 0-size intervals, because we also want to allow negative stride intervals like .e.g. 2..-3 of size -6, meaning there is no iinterval representation equal to the empty set More...
 
type  iinterval_sp
 
interface  is_contained_in
 
interface  operator(/=)
 
interface  operator(==)
 
interface  rebased_extent
 
interface  sprint
 

Functions/Subroutines

elemental integer(i4) function extent_size_1d (ext)
 size of one-dimensional range
 
pure integer(i4) function extent_size_nd (ext)
 size of multi-dimensional extent, i.e. product of sizes in individual dimensions
 
elemental integer(i8) function extent_i8_size_1d (ext)
 size of one-dimensional range
 
pure integer(i8) function extent_i8_size_nd (ext)
 size of multi-dimensional extent, i.e. product of sizes in individual dimensions
 
elemental integer(i4) function iinterval_size_1d (rng)
 size of one-dimensional range
 
elemental integer(i8) function iinterval_i8_size_1d (rng)
 size of one-dimensional range
 
pure integer(i4) function iinterval_size_nd (rng)
 size of multi-dimensional range, i.e. product of sizes in individual dimensions
 
pure integer(i8) function iinterval_i8_size_nd (rng)
 size of multi-dimensional range, i.e. product of sizes in individual dimensions
 
elemental integer(i8) function extent_size_1d_i8 (ext)
 size of one-dimensional range
 
pure integer(i8) function extent_size_nd_i8 (ext)
 size of multi-dimensional extent, i.e. product of sizes in individual dimensions
 
elemental integer(i8) function iinterval_size_1d_i8 (rng)
 size of one-dimensional range
 
pure integer(i8) function iinterval_size_nd_i8 (rng)
 size of multi-dimensional range, i.e. product of sizes in individual dimensions
 
elemental integer(i4) function extent_start_1d (ext)
 start index of one-dimensional range
 
elemental integer(i8) function extent_i8_start_1d (ext)
 start index of one-dimensional range
 
pure integer(i4) function, dimension(size(ext)) extent_start_nd (ext)
 start indices of multi-dimensional ranges
 
pure integer(i8) function, dimension(size(ext)) extent_i8_start_nd (ext)
 start indices of multi-dimensional ranges
 
elemental integer(i4) function iinterval_start_1d (rng)
 start index of one-dimensional range
 
elemental integer(i8) function iinterval_i8_start_1d (rng)
 start index of one-dimensional range
 
pure integer(i4) function, dimension(size(ranges)) iinterval_start_nd (ranges)
 start indices of multi-dimensional ranges
 
pure integer(i8) function, dimension(size(ranges)) iinterval_i8_start_nd (ranges)
 start indices of multi-dimensional ranges
 
elemental integer(i4) function extent_end_1d (ext)
 
elemental integer(i8) function extent_i8_end_1d (ext)
 
pure integer(i4) function, dimension(size(ext)) extent_end_nd (ext)
 
pure integer(i8) function, dimension(size(ext)) extent_i8_end_nd (ext)
 
elemental integer(i4) function iinterval_end_1d (rng)
 
elemental integer(i8) function iinterval_i8_end_1d (rng)
 
pure integer(i4) function, dimension(size(ranges)) iinterval_end_nd (ranges)
 
pure integer(i8) function, dimension(size(ranges)) iinterval_i8_end_nd (ranges)
 
elemental type(iinterval) function extent_iinterval (ext)
 
elemental type(extent) function rebased_extent_1d (ext, base)
 
elemental type(extent) function rebased_extent_idx (ext, base)
 
subroutine extent_set_iinterval_2i (ext, first, last)
 
elemental subroutine extent_set_iinterval_i4 (ext, rng)
 
elemental subroutine extent_set_iinterval_i8 (ext, rng)
 
elemental subroutine iinterval_set_extent_i4 (rng, ext)
 assign extent to range, caution: this is only well if defined either last < first denotes the empty range or zero-size extents are not part of the input
 
elemental subroutine iinterval_set_extent_i8 (rng, ext)
 assign extent to range, caution: this is only well if defined either last < first denotes the empty range or zero-size extents are not part of the input
 
elemental type(iinterval) function, public iinterval_from_extent (ext)
 construct range from extent, caution: this is only well if defined either last < first denotes the empty range or zero-size extents are not part of the input
 
elemental type(extent) function, public extent_from_iinterval (first, last)
 convert inclusive interval to extent representing same range
 
elemental character(len=ext2s_len) function char_auto_e (ext)
 
elemental character(len=ext2s_len_i8) function char_auto_e_i8 (ext)
 
subroutine sprint_e (s, ranges)
 
subroutine sprint_e_i8 (s, ranges)
 
subroutine sprint_i (s, ranges)
 
elemental character(len=ext2s_len) function char_auto_i (rng)
 
elemental character(len=ext2s_len_i8) function char_auto_i_i8 (rng)
 
subroutine, public init_io_formats
 
elemental character(len=iinterval_sp2s_len) function char_auto_i_sp (rng)
 
elemental character(len=iinterval_dp2s_len) function char_auto_i_dp (rng)
 
elemental logical function extent_equality (a, b)
 
elemental logical function extent_inequality (a, b)
 
elemental logical function extent_equality_i8 (a, b)
 
elemental logical function extent_inequality_i8 (a, b)
 
elemental logical function iinterval_equality (a, b)
 
elemental logical function iinterval_inequality (a, b)
 
elemental logical function iinterval_equality_i8 (a, b)
 
elemental logical function iinterval_inequality_i8 (a, b)
 
elemental type(extent) function extent_intersect_1d (a, b)
 
elemental type(extent_i8) function extent_i8_intersect_1d (a, b)
 
elemental type(iinterval) function iinterval_intersect_1d (a, b)
 
elemental type(iinterval_i8) function iinterval_i8_intersect_1d (a, b)
 
pure logical function extents_do_intersect_1d (a, b)
 
pure logical function extents_do_intersect_nd (a, b)
 
pure logical function extents_i8_do_intersect_1d (a, b)
 
pure logical function extents_i8_do_intersect_nd (a, b)
 
pure logical function iintervals_do_intersect_1d (a, b)
 
pure logical function iintervals_do_intersect_nd (a, b)
 
pure logical function iintervals_i8_do_intersect_1d (a, b)
 
pure logical function iintervals_i8_do_intersect_nd (a, b)
 
elemental logical function is_contained_in_e (i, rng)
 
logical function is_contained_in_e_nd (i, rng)
 

Variables

type(extent), parameter, public empty_extent = extent(0, 0)
 canonical representation of empty range
 
integer(i4), parameter ext_i2s_len =11
 string representation of extent size/position takes at most 11 decimal places (10 + sign)
 
integer(i4), parameter, public ext2s_len =2*ext_i2s_len+4
 string representation of extent takes at most ext2s_len characters
 
type(extent_i8), parameter, public empty_extent_i8 = extent_i8(0_i8, 0_i8)
 canonical representation of empty range
 
integer(i4), parameter ext_i2s_len_i8 =20
 string representation of 8-byte extent size/position takes at most 20 decimal places (10 + sign)
 
integer(i4), parameter, public ext2s_len_i8 =2*ext_i2s_len_i8+4
 string representation of i8 extent takes at most ext2s_len_i8 characters
 
type(iinterval), parameter, public empty_iinterval = iinterval(1, 0)
 canonical representation of empty interval
 
type(iinterval_i8), parameter, public empty_iinterval_i8 = iinterval_i8(1_i8, 0_i8)
 canonical representation of empty interval
 
integer, parameter, public iinterval_sp2s_len = 2*de_g_sp_width+4
 string representation of iinterval_sp takes at most iinterval_sp2s_len characters
 
character(len= *), parameter iinterval_sp_fmt = '("[",'//de_g_sp//',",",'//de_g_sp//',"]")'
 
character(len= *), parameter iinterval_dp_fmt = '("[",'//de_g_dp//',",",'//de_g_dp//',"]")'
 
integer, parameter, public iinterval_dp2s_len = 2*de_g_dp_width+4
 string representation of iinterval_dp takes at most iinterval_dp2s_len characters
 

Detailed Description

contains definition of extent and interval types and associated functions

Function/Subroutine Documentation

◆ extent_i8_size_1d()

elemental integer(i8) function ppm_extents::extent_i8_size_1d ( type(extent_i8), intent(in) ext)
private

size of one-dimensional range

Parameters
extextent to query
Returns
size of extent

◆ extent_i8_size_nd()

pure integer(i8) function ppm_extents::extent_i8_size_nd ( type(extent_i8), dimension(:), intent(in) ext)
private

size of multi-dimensional extent, i.e. product of sizes in individual dimensions

Parameters
extextents to query
Returns
product of sizes of extents

◆ extent_i8_start_1d()

elemental integer(i8) function ppm_extents::extent_i8_start_1d ( type(extent_i8), intent(in) ext)
private

start index of one-dimensional range

Parameters
extextent to query
Returns
first index of interval

◆ extent_i8_start_nd()

pure integer(i8) function, dimension(size(ext)) ppm_extents::extent_i8_start_nd ( type(extent_i8), dimension(:), intent(in) ext)
private

start indices of multi-dimensional ranges

Parameters
extextents to query
Returns
first indices of interval

◆ extent_size_1d()

elemental integer(i4) function ppm_extents::extent_size_1d ( type(extent), intent(in) ext)
private

size of one-dimensional range

Parameters
extextent to query
Returns
size of extent

◆ extent_size_1d_i8()

elemental integer(i8) function ppm_extents::extent_size_1d_i8 ( type(extent), intent(in) ext)
private

size of one-dimensional range

Parameters
extextent to query
Returns
size of extent

◆ extent_size_nd()

pure integer(i4) function ppm_extents::extent_size_nd ( type(extent), dimension(:), intent(in) ext)
private

size of multi-dimensional extent, i.e. product of sizes in individual dimensions

Parameters
extextents to query
Returns
product of sizes of extents

◆ extent_size_nd_i8()

pure integer(i8) function ppm_extents::extent_size_nd_i8 ( type(extent), dimension(:), intent(in) ext)
private

size of multi-dimensional extent, i.e. product of sizes in individual dimensions

Parameters
extextents to query
Returns
product of sizes of extents

◆ extent_start_1d()

elemental integer(i4) function ppm_extents::extent_start_1d ( type(extent), intent(in) ext)
private

start index of one-dimensional range

Parameters
extextent to query
Returns
first index of interval

◆ extent_start_nd()

pure integer(i4) function, dimension(size(ext)) ppm_extents::extent_start_nd ( type(extent), dimension(:), intent(in) ext)
private

start indices of multi-dimensional ranges

Parameters
extextents to query
Returns
first indices of interval

◆ iinterval_i8_size_1d()

elemental integer(i8) function ppm_extents::iinterval_i8_size_1d ( type(iinterval_i8), intent(in) rng)
private

size of one-dimensional range

Parameters
rngiinterval to query
Returns
size of interval

◆ iinterval_i8_size_nd()

pure integer(i8) function ppm_extents::iinterval_i8_size_nd ( type(iinterval_i8), dimension(:), intent(in) rng)
private

size of multi-dimensional range, i.e. product of sizes in individual dimensions

Parameters
rngmulti-dimensional range to query
Returns
product of sizes of ranges

◆ iinterval_i8_start_1d()

elemental integer(i8) function ppm_extents::iinterval_i8_start_1d ( type(iinterval_i8), intent(in) rng)
private

start index of one-dimensional range

Parameters
rngiinterval to query
Returns
first index of interval

◆ iinterval_i8_start_nd()

pure integer(i8) function, dimension(size(ranges)) ppm_extents::iinterval_i8_start_nd ( type(iinterval_i8), dimension(:), intent(in) ranges)
private

start indices of multi-dimensional ranges

Parameters
rangesiintervals to query
Returns
first indices of intervals

◆ iinterval_size_1d()

elemental integer(i4) function ppm_extents::iinterval_size_1d ( type(iinterval), intent(in) rng)
private

size of one-dimensional range

Parameters
rngiinterval to query
Returns
size of interval

◆ iinterval_size_1d_i8()

elemental integer(i8) function ppm_extents::iinterval_size_1d_i8 ( type(iinterval), intent(in) rng)
private

size of one-dimensional range

Parameters
rngiinterval to query
Returns
size of interval

◆ iinterval_size_nd()

pure integer(i4) function ppm_extents::iinterval_size_nd ( type(iinterval), dimension(:), intent(in) rng)
private

size of multi-dimensional range, i.e. product of sizes in individual dimensions

Parameters
rngmulti-dimensional range to query
Returns
product of sizes of ranges

◆ iinterval_size_nd_i8()

pure integer(i8) function ppm_extents::iinterval_size_nd_i8 ( type(iinterval), dimension(:), intent(in) rng)
private

size of multi-dimensional range, i.e. product of sizes in individual dimensions

Parameters
rngmulti-dimensional range to query
Returns
product of sizes of ranges

◆ iinterval_start_1d()

elemental integer(i4) function ppm_extents::iinterval_start_1d ( type(iinterval), intent(in) rng)
private

start index of one-dimensional range

Parameters
rngiinterval to query
Returns
first index of interval

◆ iinterval_start_nd()

pure integer(i4) function, dimension(size(ranges)) ppm_extents::iinterval_start_nd ( type(iinterval), dimension(:), intent(in) ranges)
private

start indices of multi-dimensional ranges

Parameters
rangesiintervals to query
Returns
first indices of intervals

Das diesem Bericht zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung, und Forschung unter dem Förderkennzeichen 01IH08004E gefördert. Die Verantwortung für den Inhalt dieser Veröffentlichung liegt beim Autor.