46 generic ::
operator(.eq.) => equal
47 generic ::
assignment(=) => assign_tuple, assign_vector
52 integer :: x(2) = (/0, 0/)
61 integer :: x(3) = (/0, 0, 0/)
70 integer :: x(4) = (/0, 0, 0, 0/)
79 real(kind=
dp) :: x(2) = (/0d0, 0d0/)
110 class(
tuple_t),
intent(inout) :: this
111 class(
tuple_t),
intent(in) :: other
119 class(
tuple_t),
intent(inout) :: this
120 class(*),
dimension(:),
intent(in) :: x
128 class(
tuple_t),
intent(in) :: this
129 class(
tuple_t),
intent(in) :: other
139 class(
tuple_t),
intent(in) :: other
150 class(*),
dimension(:),
intent(in) :: x
161 class(
tuple_t),
intent(in) :: other
167 res = all(this%x .eq. other%x)
174 class(
tuple_t),
intent(in) :: other
185 class(*),
dimension(:),
intent(in) :: x
196 class(
tuple_t),
intent(in) :: other
202 res = all(this%x .eq. other%x)
209 class(
tuple_t),
intent(in) :: other
220 class(*),
dimension(:),
intent(in) :: x
231 class(
tuple_t),
intent(in) :: other
237 res = all(this%x .eq. other%x)
244 class(
tuple_t),
intent(in) :: other
255 class(*),
dimension(:),
intent(in) :: x
258 type is (double precision)
266 class(
tuple_t),
intent(in) :: other
272 if (
abscmp(this%x(1), other%x(1)) .and. &
273 abscmp(this%x(2), other%x(2)))
then
282 class(
tuple_t),
intent(in) :: other
294 class(*),
dimension(:),
intent(in) :: x
300 type is (double precision)
310 class(
tuple_t),
intent(in) :: other
316 if ((this%x .eq. other%x) .and. &
317 abscmp(this%y, other%y))
then
326 class(
tuple_t),
intent(in) :: other
339 class(*),
dimension(:),
intent(in) :: x
346 type is (double precision)
357 class(
tuple_t),
intent(in) :: other
363 if ((this%x .eq. other%x) .and. &
364 (this%y .eq. other%y) .and. &
365 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.