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

describe rectilinear partitions and partitionings More...

Data Types

type  ppm_extents::extent
 Describes range as start and (directed) size. More...
 
type  ppm_extents::extent_i8
 Describes range as start and (directed) size. More...
 
type  ppm_extents::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  ppm_extents::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  ppm_extents::iinterval_sp
 
type  ppm_extents::iinterval_dp
 
interface  ppm_extents::extent_size
 
interface  ppm_extents::extent_size_i8
 
interface  ppm_extents::extent_shape
 
interface  ppm_extents::extent_start
 
interface  ppm_extents::extent_end
 
interface  ppm_extents::rebased_extent
 
interface  ppm_extents::char
 
interface  ppm_extents::sprint
 
interface  ppm_extents::extent_set_iinterval
 
interface  ppm_extents::assignment(=)
 
interface  ppm_extents::operator(==)
 
interface  ppm_extents::operator(/=)
 
interface  ppm_extents::extent_intersect
 
interface  ppm_extents::extents_do_intersect
 
interface  ppm_extents::is_contained_in
 

Modules

module  ppm_extents
 contains definition of extent and interval types and associated functions
 

Functions/Subroutines

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

Variables

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

Detailed Description

describe rectilinear partitions and partitionings

Version
1.0
Author
Thomas Jahns jahns.nosp@m.@dkr.nosp@m.z.de

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.