File: int64.dem

package info (click to toggle)
gnuplot 6.0.2%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 14,940 kB
  • sloc: ansic: 95,319; cpp: 7,590; makefile: 2,470; javascript: 2,328; sh: 1,531; lisp: 664; perl: 304; pascal: 191; tcl: 88; python: 46
file content (52 lines) | stat: -rw-r--r-- 1,986 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
43
44
45
46
47
48
49
50
51
52
#
# Unit tests for evaluation using 64bit integers
#
print "Unit tests for evaluation with 64-bit integer arithmetic"
print ""
MAXINT32 = 0x40000000 << 1
if (MAXINT32 < 0) {
    print "    This copy of gnuplot does not support 64-bit integer arithmetic"
    exit
}

array A[1] = [ int(2**40) ]
F = 12345678910.
C = 12345678910
L1 = 0x10000000000
L4 = 0x40000000000
L5 = 0x50000000000
sumI = sum [i=1:10] 1234567891
sumF = sum [i=1:10] 1234567891.

set print $INT
print sumI
set print $FLOAT
print sumF
unset print

print "12345678910 prints as       ", 12345678910
print "sum [i=1:10] 1234567891 =   ", sumI
print "sprintf(\"%d\", sum)          ", sprintf("%d",sumI)
print "print 2**63 produces         ", 2**63
print "print 2**62<<1 produces     ", 2**62<<1
print "sprintf(\"%d\", 2**62<<1)      ", sprintf("%d", 2**62<<1)
print "sprintf(\"%u\", 2**62<<1)      ", sprintf("%u", 2**62<<1)
print "sprintf(\"%x\", 2**62<<1)      ", sprintf("%x", 2**62<<1)
print "sprintf(\"%x\", 2**63)         ", sprintf("%x", 2**63)
print "gprintf(\"0x%x\", 2**62<<1)           ", gprintf("0x%x", 2**62<<1)
print "gprintf(\"0x%x\", 2**63)              ", gprintf("0x%x", 2**63)
print "gprintf(\"0x%x\", (2**62<<1)+1)       ", gprintf("0x%x", (2**62<<1) + 1)
print "gprintf(\"0x%x\", 2**53 | (2**53-1))  ", gprintf("0x%x", (2**53 | (2**53-1)))
print ""
print "F      = 12345678910."
print "int(F) = ", int(F)
print "(real(int(F)) == F		",  (real(int(F)) == F) ? "yes" : " no"
print "Sum int-expr == Sum float-expr	", (sumI == sumF) ? "yes" : "no"
print "printed sums are equal		", ($INT[1] eq $FLOAT[1]) ? "yes" : " no"
print "Sum int-expr is int		", (strstrt($INT[1],".")) ? " no" : "yes"
print "Logical bitwise & 		", ((L4 & L5) == L4) ? "OK" : " no"
print "Logical bitwise | 		", ((L1 | L4) == L5) ? "OK" : " no"
print "Logical bitwise ^ 		", ((L1 ^ L5) == L4) ? "OK" : " no"
print "Logical bitshift <<		", (L1 << 2 == L4) ? "OK" : " no"
print "Logical bitshift >>		", (L4 >> 2 == L1) ? "OK" : " no"