53 generic ::
operator(.eq.) => equal
54 generic ::
assignment(=) => assign_tuple, assign_vector
59 integer :: x(2) = (/0, 0/)
68 integer :: x(3) = (/0, 0, 0/)
77 integer :: x(4) = (/0, 0, 0, 0/)
86 real(kind=
dp) :: x(2) = (/0d0, 0d0/)
117 class(
tuple_t),
intent(inout) :: this
118 class(
tuple_t),
intent(in) :: other
126 class(
tuple_t),
intent(inout) :: this
127 class(*),
dimension(:),
intent(in) :: x
135 class(
tuple_t),
intent(in) :: this
136 class(
tuple_t),
intent(in) :: other
146 class(
tuple_t),
intent(in) :: other
157 class(*),
dimension(:),
intent(in) :: x
168 class(
tuple_t),
intent(in) :: other
174 res = all(this%x .eq. other%x)
181 class(
tuple_t),
intent(in) :: other
192 class(*),
dimension(:),
intent(in) :: x
203 class(
tuple_t),
intent(in) :: other
209 res = all(this%x .eq. other%x)
216 class(
tuple_t),
intent(in) :: other
227 class(*),
dimension(:),
intent(in) :: x
238 class(
tuple_t),
intent(in) :: other
244 res = all(this%x .eq. other%x)
251 class(
tuple_t),
intent(in) :: other
262 class(*),
dimension(:),
intent(in) :: x
265 type is (double precision)
273 class(
tuple_t),
intent(in) :: other
279 if (
abscmp(this%x(1), other%x(1)) .and. &
280 abscmp(this%x(2), other%x(2)))
then
289 class(
tuple_t),
intent(in) :: other
301 class(*),
dimension(:),
intent(in) :: x
307 type is (double precision)
317 class(
tuple_t),
intent(in) :: other
323 if ((this%x .eq. other%x) .and. &
324 abscmp(this%y, other%y))
then
333 class(
tuple_t),
intent(in) :: other
346 class(*),
dimension(:),
intent(in) :: x
353 type is (double precision)
364 class(
tuple_t),
intent(in) :: other
370 if ((this%x .eq. other%x) .and. &
371 (this%y .eq. other%y) .and. &
372 abscmp(this%z, other%z))
then
Abstract intf. for assigning a tuple to a tuple.
Abstract intf. for assigning a vector to a n-tuple.
Abstract intf. for tuple comparison.
integer, parameter, public dp
subroutine tuple3_i4_assign_tuple(this, other)
Assign an integer 3-tuple to a tuple.
pure logical function tuple_r8_equal(this, other)
Check if two double precision tuples are equal.
subroutine tuple4_i4_assign_tuple(this, other)
Assign an integer 4-tuple to a tuple.
subroutine tuple_i4r8_assign_vector(this, x)
Assign a mixed intreger-double precision vector to a tuple.
pure logical function tuple4_i4_equal(this, other)
Check if two integer based tuples are equal.
subroutine tuple_i4_assign_tuple(this, other)
Assign an integer 2-tuple to a tuple.
subroutine tuple_r8_assign_tuple(this, other)
Assign a double precision 2-tuple to a tuple.
pure logical function tuple_i4r8_equal(this, other)
Check if two mixed integer-double precision tuples are equal.
subroutine tuple_r8_assign_vector(this, x)
Assign a double precision vector to a tuple.
subroutine tuple_i4_assign_vector(this, x)
Assign an integer vector to a tuple.
subroutine tuple_i4r8_assign_tuple(this, other)
Assign a mixed integer-double precision 2-tuple to a tuple.
subroutine tuple4_i4_assign_vector(this, x)
Assign an integer vector to a tuple.
pure logical function tuple_i4_equal(this, other)
Check if two integer based tuples are equal.
pure logical function tuple_2i4r8_equal(this, other)
Check if two mixed integer-double precision tuples are equal.
pure logical function tuple3_i4_equal(this, other)
Check if two integer based tuples are equal.
subroutine tuple_2i4r8_assign_vector(this, x)
Assign a mixed intreger-double precision vector to a tuple.
subroutine tuple3_i4_assign_vector(this, x)
Assign an integer vector to a tuple.
subroutine tuple_2i4r8_assign_tuple(this, other)
Assign a mixed integer-double precision 3-tuple to a tuple.
Mixed integer ( ) double precision ( ) 3-tuple.
Mixed integer ( ) double precision ( ) 2-tuple .
Double precision based 2-tuple.
Base type for an n-tuple.