File: benchmark_compute_range.pro

package info (click to toggle)
gnudatalanguage 1.1.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 80,832 kB
  • sloc: cpp: 198,435; ansic: 47,740; sh: 691; python: 474; makefile: 149; xml: 69; f90: 28
file content (80 lines) | stat: -rw-r--r-- 2,013 bytes parent folder | download | duplicates (6)
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
;
; AC, July 2017
;
; The difficulty here is we don't know the name of
; the vectors for X and Y axis before calling the code !
;
; --------------------------------------------------------------
;
function BENCH_UPDATE_RANGE, range, new_data
;
if (MIN(new_data) LT range[0]) then range[0]=MIN(new_data)
if (MAX(new_data) GT range[1]) then range[1]=MAX(new_data)
;
return, range
;
end
;
; --------------------------------------------------------------
;
; Restoring a liste of XDR files containing "x_name" and "y_name"
; vectors of data. Extracting extremal ranges.
;
pro BENCHMARK_COMPUTE_RANGE, liste_xdr_files, xrange, yrange, x_name, y_name, $
                             xmax=xmax, ymax=ymax, $
                             xelems=xelems, yelems=yelems, $
                             verbose=verbose, test=test, debug=debug
;
xrange=[0.,0.]
yrange=[0.,0.]
;
;print, xmax, ymax
for ii=0, N_ELEMENTS(liste_xdr_files)-1 do begin
   ;;
   if KEYWORD_SET(verbose) then print, 'Restoring '+liste_xdr_files[ii]
   RESTORE, liste_xdr_files[ii]
   ;;
   ;; because we don't know the names before
   ;;
   cmd="x_data="+x_name
   res=EXECUTE(cmd)
   ;;
   cmd="y_data="+y_name
   res=EXECUTE(cmd)
   ;;
   update_flag=1
   ;;
   if KEYWORD_SET(xmax) then begin
      ok=WHERE(x_data LE xmax, nbpx)
      if nbpx GT 0 then begin
         x_data=x_data[ok]
         y_data=y_data[ok]
      endif else update_flag=0
      ;;print, nbpx, y_data
   endif
   ;;
   if KEYWORD_SET(ymax) then begin
      ok=WHERE(y_data LE ymax, nbpy)
      if nbpy GT 0 then begin
         x_data=x_data[ok]
         y_data=y_data[ok]
      endif  else update_flag=0
      ;;print,nbpy,  y_data
   endif
   xelems=N_ELEMENTS(x_data)
   yelems=N_ELEMENTS(y_data)
   ;;
   ;; do we still have one point ?!
   ;;
   if (update_flag EQ 1) then begin
      xrange=BENCH_UPDATE_RANGE(xrange,x_data)
      yrange=BENCH_UPDATE_RANGE(yrange,y_data)
   endif
   ;;print, xrange
   ;;print, yrange
   ;;
endfor
;
if KEYWORD_SET(test) then STOP
;
end