forgex_cube_m Module



Variables

Type Visibility Attributes Name Initial
type(bmp_t), public, parameter :: white_bmp = bmp_t([(0_int64, q=0, BMP_SIZE-1)])
integer, private :: q

Interfaces

public interface assignment(=)

  • private pure subroutine cube_t__cube_assign(a, b)

    Arguments

    Type IntentOptional Attributes Name
    type(cube_t), intent(inout) :: a
    type(cube_t), intent(in) :: b

public interface operator(.in.)

  • private pure function cube_t__symbol_in_cube(symbol, cube) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: symbol
    type(cube_t), intent(in) :: cube

    Return Value logical

public interface operator(==)

  • private pure function cube_t__equal(a, b) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    type(cube_t), intent(in) :: a
    type(cube_t), intent(in) :: b

    Return Value logical


Derived Types

type, public ::  cube_t

Components

Type Visibility Attributes Name Initial
type(ascii_t), public :: ascii
type(bmp_t), public, allocatable :: bmp
logical, public :: epsilon_flag = .false.
logical, public :: is_switched_to_bmp = .false.
logical, public :: single_flag = .true.
type(segment_t), public, allocatable :: sps(:)

Type-Bound Procedures

generic, public :: add => cube_add__symbol, cube_add__segment, cube_add__segment_list, cube_add__cube
procedure, public :: cube2seg => cube__bmp2seg
procedure, public :: cube_add__cube
procedure, public :: cube_add__segment
procedure, public :: cube_add__segment_list
procedure, public :: cube_add__symbol
procedure, public :: first => cube__first_codepoint
procedure, public :: flag_epsilon => cube_flag__epsilon
procedure, public :: invert => cube__invert
procedure, public :: is_flagged_epsilon => cube_flag__is_flagged_epsilon
procedure, public :: num => cube__number_of_flagged_bits
procedure, public :: print_sps => cube__dump_sps
procedure, public :: switch_bmp => cube__switch_ascii_to_bmp

Functions

private pure function cube__first_codepoint(self) result(ret)

Arguments

Type IntentOptional Attributes Name
class(cube_t), intent(in) :: self

Return Value integer

private pure function cube__number_of_flagged_bits(self) result(ret)

Arguments

Type IntentOptional Attributes Name
class(cube_t), intent(in) :: self

Return Value integer

private pure function cube_flag__is_flagged_epsilon(self)

Arguments

Type IntentOptional Attributes Name
class(cube_t), intent(in) :: self

Return Value logical

private pure function cube_t__codepoint_in_cube(cp, cube) result(ret)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: cp
type(cube_t), intent(in) :: cube

Return Value logical

private pure function cube_t__equal(a, b) result(ret)

Arguments

Type IntentOptional Attributes Name
type(cube_t), intent(in) :: a
type(cube_t), intent(in) :: b

Return Value logical

private pure function cube_t__symbol_in_cube(symbol, cube) result(ret)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: symbol
type(cube_t), intent(in) :: cube

Return Value logical


Subroutines

private pure subroutine cube__bmp2seg(self, segments)

Arguments

Type IntentOptional Attributes Name
class(cube_t), intent(in) :: self
type(segment_t), intent(inout), allocatable :: segments(:)

private subroutine cube__dump_sps(self)

Arguments

Type IntentOptional Attributes Name
class(cube_t), intent(in) :: self

private pure subroutine cube__invert(self)

Arguments

Type IntentOptional Attributes Name
class(cube_t), intent(inout) :: self

private pure subroutine cube__switch_ascii_to_bmp(self)

Arguments

Type IntentOptional Attributes Name
class(cube_t), intent(inout) :: self

private pure subroutine cube_add__cube(self, cube)

Arguments

Type IntentOptional Attributes Name
class(cube_t), intent(inout) :: self
type(cube_t), intent(in) :: cube

private pure subroutine cube_add__segment(self, segment)

Arguments

Type IntentOptional Attributes Name
class(cube_t), intent(inout) :: self
type(segment_t), intent(in) :: segment

private pure subroutine cube_add__segment_list(self, seglist)

Arguments

Type IntentOptional Attributes Name
class(cube_t), intent(inout) :: self
type(segment_t), intent(in) :: seglist(:)

private pure subroutine cube_add__symbol(self, symbol)

Arguments

Type IntentOptional Attributes Name
class(cube_t), intent(inout) :: self
character(len=*), intent(in) :: symbol

private pure subroutine cube_flag__epsilon(self)

Arguments

Type IntentOptional Attributes Name
class(cube_t), intent(inout) :: self

private pure subroutine cube_t__cube_assign(a, b)

Arguments

Type IntentOptional Attributes Name
type(cube_t), intent(inout) :: a
type(cube_t), intent(in) :: b