File: fold-mod.f90

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (42 lines) | stat: -rw-r--r-- 2,389 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
! RUN: %python %S/test_folding.py %s %flang_fc1
! Tests folding of integer and real MOD and MODULO
module m1
  logical, parameter :: test_mod_i1 = mod(8, 5) == 3
  logical, parameter :: test_mod_i2 = mod(-8, 5) == -3
  logical, parameter :: test_mod_i3 = mod(8, -5) == 3
  logical, parameter :: test_mod_i4 = mod(-8, -5) == -3

  logical, parameter :: test_mod_r1 = mod(3., 2.) == 1.
  logical, parameter :: test_mod_r2 = mod(8., 5.) == 3.
  logical, parameter :: test_mod_r3 = mod(-8., 5.) == -3.
  logical, parameter :: test_mod_r4 = mod(8., -5.) == 3.
  logical, parameter :: test_mod_r5 = mod(-8., -5.) == -3.

  logical, parameter :: test_mod_r10a = mod(huge(0.), tiny(0.)) == 0.
  logical, parameter :: test_mod_r10b = sign(1., mod(huge(0.), tiny(0.))) == 1.
  logical, parameter :: test_mod_r11a = mod(-huge(0.), tiny(0.)) == 0.
  logical, parameter :: test_mod_r11b = sign(1., mod(-huge(0.), tiny(0.))) == -1.
  logical, parameter :: test_mod_r12a = mod(huge(0.), -tiny(0.)) == 0.
  logical, parameter :: test_mod_r12b = sign(1., mod(huge(0.), -tiny(0.))) == 1.
  logical, parameter :: test_mod_r13a = mod(huge(0.), tiny(0.)) == 0.
  logical, parameter :: test_mod_r13b = sign(1., mod(-huge(0.), -tiny(0.))) == -1.

  logical, parameter :: test_modulo_i1 = modulo(8, 5) == 3
  logical, parameter :: test_modulo_i2 = modulo(-8, 5) == 2
  logical, parameter :: test_modulo_i3 = modulo(8, -5) == -2
  logical, parameter :: test_modulo_i4 = modulo(-8, -5) == -3

  logical, parameter :: test_modulo_r1 = modulo(8., 5.) == 3.
  logical, parameter :: test_modulo_r2 = modulo(-8., 5.) == 2.
  logical, parameter :: test_modulo_r3 = modulo(8., -5.) == -2.
  logical, parameter :: test_modulo_r4 = modulo(-8., -5.) == -3.

  logical, parameter :: test_modulo_r10a = modulo(huge(0.), tiny(0.)) == 0.
  logical, parameter :: test_modulo_r10b = sign(1., modulo(huge(0.), tiny(0.))) == 1.
  logical, parameter :: test_modulo_r11a = modulo(-huge(0.), tiny(0.)) == 0.
  logical, parameter :: test_modulo_r11b = sign(1., modulo(-huge(0.), tiny(0.))) == 1.
  logical, parameter :: test_modulo_r12a = modulo(huge(0.), -tiny(0.)) == 0.
  logical, parameter :: test_modulo_r12b = sign(1., modulo(huge(0.), -tiny(0.))) == -1.
  logical, parameter :: test_modulo_r13a = modulo(huge(0.), tiny(0.)) == 0.
  logical, parameter :: test_modulo_r13b = sign(1., modulo(-huge(0.), -tiny(0.))) == -1.
end module