tioga 1.11 → 1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Tioga_README +58 -35
- data/{split/scripts → bin}/tioga +1 -1
- data/{split → ext/Dobjects}/Dtable/dtable.c +81 -15
- data/{split → ext/Dobjects}/Dtable/dtable_intern.h +0 -0
- data/ext/Dobjects/Dtable/extconf.rb +7 -0
- data/{split → ext/Dobjects}/Dtable/include/dtable.h +0 -0
- data/{split → ext/Dobjects}/Dvector/dvector.c +361 -51
- data/{split → ext/Dobjects}/Dvector/dvector_intern.h +0 -0
- data/ext/Dobjects/Dvector/extconf.rb +22 -0
- data/{split/Dtable → ext/Dobjects/Dvector/include}/dvector.h +0 -0
- data/ext/Dobjects/Function/extconf.rb +7 -0
- data/{split → ext/Dobjects}/Function/function.c +636 -11
- data/{split → ext/Dobjects}/Function/joint_qsort.c +0 -0
- data/ext/Flate/extconf.rb +26 -0
- data/{split → ext}/Flate/flate.c +7 -3
- data/{split → ext}/Flate/flate_intern.h +0 -0
- data/{split → ext}/Flate/include/flate.h +0 -0
- data/ext/Flate/zlib/adler32.c +149 -0
- data/ext/Flate/zlib/compress.c +79 -0
- data/ext/Flate/zlib/crc32.c +423 -0
- data/ext/Flate/zlib/crc32.h +441 -0
- data/ext/Flate/zlib/deflate.c +1736 -0
- data/ext/Flate/zlib/deflate.h +331 -0
- data/ext/Flate/zlib/gzio.c +1026 -0
- data/ext/Flate/zlib/infback.c +623 -0
- data/ext/Flate/zlib/inffast.c +318 -0
- data/ext/Flate/zlib/inffast.h +11 -0
- data/ext/Flate/zlib/inffixed.h +94 -0
- data/ext/Flate/zlib/inflate.c +1368 -0
- data/ext/Flate/zlib/inflate.h +115 -0
- data/ext/Flate/zlib/inftrees.c +329 -0
- data/ext/Flate/zlib/inftrees.h +55 -0
- data/ext/Flate/zlib/trees.c +1219 -0
- data/ext/Flate/zlib/trees.h +128 -0
- data/ext/Flate/zlib/uncompr.c +61 -0
- data/ext/Flate/zlib/zlib.h +1357 -0
- data/ext/Flate/zlib/zutil.c +318 -0
- data/ext/Flate/zlib/zutil.h +269 -0
- data/ext/Tioga/FigureMaker/__shared_axes.c +1373 -0
- data/ext/Tioga/FigureMaker/__shared_makers.c +1303 -0
- data/{split/Tioga/pdf_font_dicts.c → ext/Tioga/FigureMaker/__shared_pdf_font_dicts.c} +0 -0
- data/{split/Tioga/pdfcolor.c → ext/Tioga/FigureMaker/__shared_pdfcolor.c} +0 -0
- data/{split/Tioga/pdfcoords.c → ext/Tioga/FigureMaker/__shared_pdfcoords.c} +0 -0
- data/{split/Tioga/pdffile.c → ext/Tioga/FigureMaker/__shared_pdffile.c} +0 -0
- data/{split/Tioga/pdfimage.c → ext/Tioga/FigureMaker/__shared_pdfimage.c} +0 -0
- data/{split/Tioga/pdfpath.c → ext/Tioga/FigureMaker/__shared_pdfpath.c} +0 -0
- data/{split/Tioga/pdftext.c → ext/Tioga/FigureMaker/__shared_pdftext.c} +0 -0
- data/{split/Tioga/texout.c → ext/Tioga/FigureMaker/__shared_texout.c} +0 -0
- data/ext/Tioga/FigureMaker/extconf.rb +7 -0
- data/{split/Tioga → ext/Tioga/FigureMaker}/figures.c +14 -2
- data/{split/Tioga → ext/Tioga/FigureMaker}/figures.h +0 -0
- data/{split/Tioga → ext/Tioga/FigureMaker}/generic.c +1 -2
- data/{split/Tioga → ext/Tioga/FigureMaker}/generic.h +0 -1
- data/{split/Tioga → ext/Tioga/FigureMaker}/init.c +0 -0
- data/{split/Tioga → ext/Tioga/FigureMaker}/pdfs.h +0 -0
- data/{split/Tioga → ext/Tioga/FigureMaker/shared}/axes.c +32 -7
- data/{split/Tioga → ext/Tioga/FigureMaker/shared}/makers.c +2 -2
- data/ext/Tioga/FigureMaker/shared/pdf_font_dicts.c +18253 -0
- data/ext/Tioga/FigureMaker/shared/pdfcolor.c +904 -0
- data/ext/Tioga/FigureMaker/shared/pdfcoords.c +518 -0
- data/ext/Tioga/FigureMaker/shared/pdffile.c +451 -0
- data/ext/Tioga/FigureMaker/shared/pdfimage.c +539 -0
- data/ext/Tioga/FigureMaker/shared/pdfpath.c +766 -0
- data/ext/Tioga/FigureMaker/shared/pdftext.c +710 -0
- data/ext/Tioga/FigureMaker/shared/texout.c +533 -0
- data/{split/Tioga → ext/Tioga/FigureMaker}/wrappers.c +5 -5
- data/{split/Tioga → ext/Tioga/FigureMaker}/wrappers.h +0 -0
- data/{split/Dtable → ext/includes}/defs.h +0 -0
- data/{split/Dtable → ext/includes}/namespace.h +0 -0
- data/{split/Dtable → ext/includes}/safe_double.h +0 -0
- data/{split → ext/includes}/symbols.c +0 -1
- data/{split/Dtable → ext/includes}/symbols.h +0 -0
- data/{split/Dtable/lib → lib/Dobjects}/Dtable_extras.rb +0 -0
- data/{split/Dvector/lib → lib/Dobjects}/Dvector_extras.rb +1 -0
- data/{split/Function/lib → lib/Dobjects}/Function_extras.rb +0 -0
- data/{split/Dvector/lib → lib/Dobjects}/Numeric_extras.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Arcs_and_Circles.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/ColorConstants.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Colorbars.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Colormaps.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Coordinate_Conversions.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Creating_Paths.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Doc.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Executive.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/FigMkr.rb +13 -70
- data/{split/Tioga/lib → lib/Tioga}/FigureConstants.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Figures_and_Plots.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Images.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Legends.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/MarkerConstants.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Markers.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Page_Frame_Bounds.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Rectangles.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Shading.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Special_Paths.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Strokes.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/TeX_Text.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/TexPreamble.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Titles_and_Labels.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Transparency.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Using_Paths.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/Utils.rb +74 -0
- data/{split/Tioga/lib → lib/Tioga}/X_and_Y_Axes.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/irb_tioga.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/maker.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/tioga.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/tioga_ui.rb +0 -0
- data/{split/Tioga/lib → lib/Tioga}/tioga_ui_cmds.rb +0 -0
- data/tests/Icon_Test.pdf +0 -0
- data/tests/benchmark_dvector_reads.rb +20 -42
- data/tests/tc_Dvector.rb +45 -4
- data/tests/tc_Flate.rb +4 -5
- data/tests/tc_Function.rb +79 -0
- data/tests/vg.log +1453 -0
- metadata +141 -122
- data/split/Dtable/extconf.rb +0 -4
- data/split/Dvector/defs.h +0 -39
- data/split/Dvector/extconf.rb +0 -4
- data/split/Dvector/include/dvector.h +0 -77
- data/split/Dvector/namespace.h +0 -59
- data/split/Dvector/safe_double.h +0 -104
- data/split/Dvector/symbols.h +0 -52
- data/split/Flate/defs.h +0 -39
- data/split/Flate/extconf.rb +0 -19
- data/split/Flate/namespace.h +0 -59
- data/split/Flate/safe_double.h +0 -104
- data/split/Flate/symbols.h +0 -52
- data/split/Function/defs.h +0 -39
- data/split/Function/dvector.h +0 -77
- data/split/Function/extconf.rb +0 -4
- data/split/Function/namespace.h +0 -59
- data/split/Function/safe_double.h +0 -104
- data/split/Function/symbols.h +0 -52
- data/split/Tioga/defs.h +0 -39
- data/split/Tioga/dtable.h +0 -35
- data/split/Tioga/dvector.h +0 -77
- data/split/Tioga/extconf.rb +0 -4
- data/split/Tioga/flate.h +0 -98
- data/split/Tioga/mk_tioga_sty.rb +0 -53
- data/split/Tioga/namespace.h +0 -59
- data/split/Tioga/safe_double.h +0 -104
- data/split/Tioga/symbols.h +0 -52
- data/split/defs.h +0 -39
- data/split/extconf.rb +0 -125
- data/split/mkmf2.rb +0 -1623
- data/split/namespace.h +0 -59
- data/split/safe_double.h +0 -104
- data/split/symbols.h +0 -52
|
@@ -77,7 +77,7 @@ OBJ_PTR FM_private_make_portfolio(OBJ_PTR fmkr, OBJ_PTR name, OBJ_PTR fignums, O
|
|
|
77
77
|
// makers.c
|
|
78
78
|
OBJ_PTR FM_private_make_contour(OBJ_PTR fmkr, OBJ_PTR gaps,
|
|
79
79
|
OBJ_PTR xs, OBJ_PTR ys, OBJ_PTR zs, OBJ_PTR z_level, OBJ_PTR legit, OBJ_PTR method) { int ierr=0;
|
|
80
|
-
return c_private_make_contour(
|
|
80
|
+
return c_private_make_contour(Qnil, NULL, gaps, xs, ys, zs, Number_to_double(z_level, &ierr),
|
|
81
81
|
legit, Number_to_int(method, &ierr), &ierr); }
|
|
82
82
|
OBJ_PTR FM_private_make_steps(OBJ_PTR fmkr, OBJ_PTR Xvec_data, OBJ_PTR Yvec_data,
|
|
83
83
|
OBJ_PTR xfirst, OBJ_PTR yfirst, OBJ_PTR xlast, OBJ_PTR ylast) { int ierr=0;
|
|
@@ -120,9 +120,9 @@ OBJ_PTR FM_get_color_from_colormap(OBJ_PTR fmkr, OBJ_PTR color_map, OBJ_PTR colo
|
|
|
120
120
|
OBJ_PTR FM_convert_to_colormap(OBJ_PTR fmkr, OBJ_PTR Rs, OBJ_PTR Gs, OBJ_PTR Bs) { int ierr=0;
|
|
121
121
|
return c_convert_to_colormap(fmkr, Get_FM(fmkr, &ierr), Rs, Gs, Bs, &ierr); }
|
|
122
122
|
OBJ_PTR FM_hls_to_rgb(OBJ_PTR fmkr, OBJ_PTR hls_vec) { int ierr=0;
|
|
123
|
-
return c_hls_to_rgb(
|
|
123
|
+
return c_hls_to_rgb(Qnil, NULL, hls_vec, &ierr); }
|
|
124
124
|
OBJ_PTR FM_rgb_to_hls(OBJ_PTR fmkr, OBJ_PTR rgb_vec) { int ierr=0;
|
|
125
|
-
return c_rgb_to_hls(
|
|
125
|
+
return c_rgb_to_hls(Qnil, NULL, rgb_vec, &ierr); }
|
|
126
126
|
OBJ_PTR FM_title_color_set(OBJ_PTR fmkr, OBJ_PTR val) { int ierr=0;
|
|
127
127
|
c_title_color_set(fmkr, Get_FM(fmkr, &ierr), val, &ierr); RETURN_NIL; }
|
|
128
128
|
OBJ_PTR FM_title_color_get(OBJ_PTR fmkr) { int ierr=0;
|
|
@@ -155,11 +155,11 @@ OBJ_PTR FM_yaxis_labels_color_get(OBJ_PTR fmkr) { int ierr=0;
|
|
|
155
155
|
return c_yaxis_labels_color_get(fmkr, Get_FM(fmkr, &ierr), &ierr); }
|
|
156
156
|
|
|
157
157
|
OBJ_PTR FM_string_hls_to_rgb_bang(OBJ_PTR fmkr, OBJ_PTR str) { int ierr=0;
|
|
158
|
-
c_string_hls_to_rgb_bang(
|
|
158
|
+
c_string_hls_to_rgb_bang(Qnil, NULL,
|
|
159
159
|
(unsigned char *)String_Ptr(str, &ierr), String_Len(str, &ierr), &ierr);
|
|
160
160
|
return str; }
|
|
161
161
|
OBJ_PTR FM_string_rgb_to_hls_bang(OBJ_PTR fmkr, OBJ_PTR str) { int ierr=0;
|
|
162
|
-
c_string_rgb_to_hls_bang(
|
|
162
|
+
c_string_rgb_to_hls_bang(Qnil, NULL,
|
|
163
163
|
(unsigned char *)String_Ptr(str, &ierr), String_Len(str, &ierr), &ierr);
|
|
164
164
|
return str; }
|
|
165
165
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -21,12 +21,16 @@
|
|
|
21
21
|
=end
|
|
22
22
|
|
|
23
23
|
require 'Tioga/FigureConstants.rb'
|
|
24
|
-
require 'Tioga/Utils
|
|
24
|
+
require 'Tioga/Utils'
|
|
25
25
|
|
|
26
26
|
module Tioga
|
|
27
27
|
class FigureMaker
|
|
28
28
|
|
|
29
29
|
include FigureConstants
|
|
30
|
+
|
|
31
|
+
# For the parsing of Hash arguments
|
|
32
|
+
include HashArguments # For instance methods
|
|
33
|
+
extend HashArguments # For class methods
|
|
30
34
|
|
|
31
35
|
@@default_figure_maker = nil
|
|
32
36
|
@@which_pdflatex = nil
|
|
@@ -34,7 +38,7 @@ class FigureMaker
|
|
|
34
38
|
|
|
35
39
|
# This URL will contain tioga-(...) when it is exported from the
|
|
36
40
|
# SVN repository. This is where we'll look for version information.
|
|
37
|
-
SVN_URL = '$HeadURL
|
|
41
|
+
SVN_URL = '$HeadURL$'
|
|
38
42
|
|
|
39
43
|
TIOGA_VERSION = if SVN_URL =~ /tags\/tioga\/Tioga%20([^\/]+)/
|
|
40
44
|
$1
|
|
@@ -1297,7 +1301,12 @@ class FigureMaker
|
|
|
1297
1301
|
|
|
1298
1302
|
@@keys_for_make_contour = FigureMaker.make_name_lookup_hash([
|
|
1299
1303
|
'dest_xs', 'dest_ys', 'z_level', 'z', 'level', 'xs', 'ys', 'gaps', 'zs', 'data', 'legit', 'method'])
|
|
1304
|
+
|
|
1300
1305
|
def make_contour(dict)
|
|
1306
|
+
return FigureMaker.make_contour(dict)
|
|
1307
|
+
end
|
|
1308
|
+
|
|
1309
|
+
def self.make_contour(dict)
|
|
1301
1310
|
check_dict(dict, @@keys_for_make_contour, 'make_contour')
|
|
1302
1311
|
z_level = dict['z_level']
|
|
1303
1312
|
if z_level == nil
|
|
@@ -1328,7 +1337,7 @@ class FigureMaker
|
|
|
1328
1337
|
|
|
1329
1338
|
method = dict['method']
|
|
1330
1339
|
use_conrec = (method == 'conrec' or method == 'CONREC')? 1 : 0
|
|
1331
|
-
pts_array = private_make_contour(gaps, xs, ys, zs, z_level, legit, use_conrec)
|
|
1340
|
+
pts_array = FigureMaker.private_make_contour(gaps, xs, ys, zs, z_level, legit, use_conrec)
|
|
1332
1341
|
|
|
1333
1342
|
unless dest_xs == nil
|
|
1334
1343
|
dest_xs.resize(pts_array[0].size)
|
|
@@ -2516,73 +2525,7 @@ class FigureMaker
|
|
|
2516
2525
|
end
|
|
2517
2526
|
return false
|
|
2518
2527
|
end
|
|
2519
|
-
|
|
2520
|
-
def check_dict(dict,names,str)
|
|
2521
|
-
dict.each_key do |name|
|
|
2522
|
-
if names[name] == nil
|
|
2523
|
-
raise "Sorry: Invalid dictionary key for #{str} (#{name})."
|
|
2524
|
-
end
|
|
2525
|
-
end
|
|
2526
|
-
end
|
|
2527
|
-
|
|
2528
|
-
def set_if_given(name, dict)
|
|
2529
|
-
val = dict[name]
|
|
2530
|
-
return if val == nil
|
|
2531
|
-
eval "self." + name + " = val"
|
|
2532
|
-
end
|
|
2533
|
-
|
|
2534
|
-
def alt_names(dict, name1, name2)
|
|
2535
|
-
val = dict[name1]
|
|
2536
|
-
val = dict[name2] if val == nil
|
|
2537
|
-
return val
|
|
2538
|
-
end
|
|
2539
|
-
|
|
2540
|
-
def get_if_given_else_use_default_dict(dict, name, default_dict)
|
|
2541
|
-
if dict != nil
|
|
2542
|
-
val = dict[name]
|
|
2543
|
-
return val if val != nil
|
|
2544
|
-
end
|
|
2545
|
-
val = default_dict[name]
|
|
2546
|
-
if val == nil
|
|
2547
|
-
raise "Sorry: failed to find value for '#{name}' in the defaults dictionary."
|
|
2548
|
-
end
|
|
2549
|
-
return val
|
|
2550
|
-
end
|
|
2551
|
-
|
|
2552
|
-
def get_if_given_else_default(dict, name, default)
|
|
2553
|
-
return default if dict == nil
|
|
2554
|
-
val = dict[name]
|
|
2555
|
-
return val if val != nil
|
|
2556
|
-
return default
|
|
2557
|
-
end
|
|
2558
|
-
|
|
2559
|
-
def complain_if_missing_numeric_arg(dict, name, alt_name, who_called)
|
|
2560
|
-
val = dict[name]
|
|
2561
|
-
val = dict[alt_name] if val == nil
|
|
2562
|
-
if val == nil
|
|
2563
|
-
raise "Sorry: Must supply '#{name}' in call to '#{who_called}'"
|
|
2564
|
-
end
|
|
2565
|
-
if !(val.kind_of?Numeric)
|
|
2566
|
-
raise "Sorry: Must supply numeric value for '#{name}' in call to '#{who_called}'"
|
|
2567
|
-
end
|
|
2568
|
-
return val
|
|
2569
|
-
end
|
|
2570
|
-
|
|
2571
|
-
def check_pair(ary, name, who_called)
|
|
2572
|
-
return false if ary == nil
|
|
2573
|
-
if !(ary.kind_of?(Array) || ary.kind_of?(Dvector)) and ary.size == 2
|
|
2574
|
-
raise "Sorry: '#{name}' must be array [x,y] for #{who_called}."
|
|
2575
|
-
end
|
|
2576
|
-
return true
|
|
2577
|
-
end
|
|
2578
|
-
|
|
2579
|
-
def get_dvec(dict, name, who_called)
|
|
2580
|
-
val = dict[name]
|
|
2581
|
-
if val == nil || !(val.kind_of? Dvector)
|
|
2582
|
-
raise "Sorry: '#{name}' must be a Dvector for '#{who_called}'"
|
|
2583
|
-
end
|
|
2584
|
-
return val
|
|
2585
|
-
end
|
|
2528
|
+
|
|
2586
2529
|
|
|
2587
2530
|
# We make sure that save_dir exists and is a directory, creating it
|
|
2588
2531
|
# if necessary.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -82,4 +82,78 @@ module Tioga
|
|
|
82
82
|
|
|
83
83
|
|
|
84
84
|
end
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
# This module is used internally by Tioga for handling the hash
|
|
88
|
+
# arguments that most of the functions take
|
|
89
|
+
module HashArguments
|
|
90
|
+
|
|
91
|
+
def check_dict(dict,names,str)
|
|
92
|
+
dict.each_key do |name|
|
|
93
|
+
if names[name] == nil
|
|
94
|
+
raise "Sorry: Invalid dictionary key for #{str} (#{name})."
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def set_if_given(name, dict)
|
|
100
|
+
val = dict[name]
|
|
101
|
+
return if val == nil
|
|
102
|
+
eval "self." + name + " = val"
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def alt_names(dict, name1, name2)
|
|
106
|
+
val = dict[name1]
|
|
107
|
+
val = dict[name2] if val == nil
|
|
108
|
+
return val
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def get_if_given_else_use_default_dict(dict, name, default_dict)
|
|
112
|
+
if dict != nil
|
|
113
|
+
val = dict[name]
|
|
114
|
+
return val if val != nil
|
|
115
|
+
end
|
|
116
|
+
val = default_dict[name]
|
|
117
|
+
if val == nil
|
|
118
|
+
raise "Sorry: failed to find value for '#{name}' in the defaults dictionary."
|
|
119
|
+
end
|
|
120
|
+
return val
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def get_if_given_else_default(dict, name, default)
|
|
124
|
+
return default if dict == nil
|
|
125
|
+
val = dict[name]
|
|
126
|
+
return val if val != nil
|
|
127
|
+
return default
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def complain_if_missing_numeric_arg(dict, name, alt_name, who_called)
|
|
131
|
+
val = dict[name]
|
|
132
|
+
val = dict[alt_name] if val == nil
|
|
133
|
+
if val == nil
|
|
134
|
+
raise "Sorry: Must supply '#{name}' in call to '#{who_called}'"
|
|
135
|
+
end
|
|
136
|
+
if !(val.kind_of?Numeric)
|
|
137
|
+
raise "Sorry: Must supply numeric value for '#{name}' in call to '#{who_called}'"
|
|
138
|
+
end
|
|
139
|
+
return val
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def check_pair(ary, name, who_called)
|
|
143
|
+
return false if ary == nil
|
|
144
|
+
if !(ary.kind_of?(Array) || ary.kind_of?(Dobjects::Dvector)) and ary.size == 2
|
|
145
|
+
raise "Sorry: '#{name}' must be array [x,y] for #{who_called}."
|
|
146
|
+
end
|
|
147
|
+
return true
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def get_dvec(dict, name, who_called)
|
|
151
|
+
val = dict[name]
|
|
152
|
+
if val == nil || !(val.kind_of? Dobjects::Dvector)
|
|
153
|
+
raise "Sorry: '#{name}' must be a Dvector for '#{who_called}'"
|
|
154
|
+
end
|
|
155
|
+
return val
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
end
|
|
85
159
|
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/tests/Icon_Test.pdf
CHANGED
|
Binary file
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# A small benchmarking file for fancy_read and fast_fancy_read, just to make
|
|
2
2
|
# sure the latter deserves its name ;-)...
|
|
3
|
+
#
|
|
4
|
+
# Now the comparison between fancy_read and fast_fancy_read
|
|
3
5
|
|
|
4
6
|
require 'Dobjects/Dvector'
|
|
5
7
|
require 'benchmark'
|
|
@@ -15,55 +17,41 @@ Benchmark.bm do |x|
|
|
|
15
17
|
end
|
|
16
18
|
f.close
|
|
17
19
|
end
|
|
18
|
-
x.report("fancy_read(
|
|
20
|
+
x.report("fancy_read(100 000):") do
|
|
19
21
|
stream = File.open(f.path)
|
|
20
22
|
Dobjects::Dvector.fancy_read(stream, nil, 'default'=> 0.0).size
|
|
21
23
|
end
|
|
22
|
-
x.report("fancy_read(
|
|
24
|
+
x.report("fancy_read(100 000), 2nd time:") do
|
|
23
25
|
stream = File.open(f.path)
|
|
24
26
|
Dobjects::Dvector.fancy_read(stream, nil, 'default'=> 0.0).size
|
|
25
27
|
end
|
|
26
|
-
|
|
28
|
+
|
|
29
|
+
# Trying pre-allocation.
|
|
30
|
+
x.report("fancy_read(100 000), preallocation to 1 :") do
|
|
31
|
+
stream = File.open(f.path)
|
|
32
|
+
Dobjects::Dvector.fancy_read(stream, nil, 'default'=> 0.0,
|
|
33
|
+
'initial_size' => 1).size
|
|
34
|
+
end
|
|
35
|
+
x.report("fancy_read(100 000), preallocation to 49999 :") do
|
|
27
36
|
stream = File.open(f.path)
|
|
28
|
-
Dobjects::Dvector.
|
|
29
|
-
|
|
30
|
-
'comments' => /^\s*\#/,
|
|
31
|
-
'skip_first' => 0,
|
|
32
|
-
'index_col' => false,
|
|
33
|
-
'remove_space' => true,
|
|
34
|
-
'default'=> 0.0}).size
|
|
37
|
+
Dobjects::Dvector.fancy_read(stream, nil, 'default'=> 0.0,
|
|
38
|
+
'initial_size' => 49999).size
|
|
35
39
|
end
|
|
36
|
-
x.report("
|
|
40
|
+
x.report("fancy_read(100 000), preallocation to 100 000 :") do
|
|
37
41
|
stream = File.open(f.path)
|
|
38
|
-
Dobjects::Dvector.
|
|
39
|
-
|
|
40
|
-
'comments' => /^\s*\#/,
|
|
41
|
-
'skip_first' => 0,
|
|
42
|
-
'index_col' => false,
|
|
43
|
-
'remove_space' => true,
|
|
44
|
-
'default'=> 0.0}).size
|
|
42
|
+
Dobjects::Dvector.fancy_read(stream, nil, 'default'=> 0.0,
|
|
43
|
+
'initial_size' => 100000).size
|
|
45
44
|
end
|
|
45
|
+
|
|
46
46
|
# We create a smaller file:
|
|
47
47
|
f = Tempfile.new("data")
|
|
48
48
|
1000.times do |i|
|
|
49
49
|
f.puts "#{i*1.0}\t#{i**1.3}\t#{i**0.7}"
|
|
50
50
|
end
|
|
51
51
|
f.close
|
|
52
|
-
x.report("fast_fancy_read(100 * 1000):") do
|
|
53
|
-
stream = File.open(f.path)
|
|
54
|
-
100.times do
|
|
55
|
-
Dobjects::Dvector.fast_fancy_read(stream, {
|
|
56
|
-
'sep' => /\s+/,
|
|
57
|
-
'comments' => /^\s*\#/,
|
|
58
|
-
'skip_first' => 0,
|
|
59
|
-
'index_col' => false,
|
|
60
|
-
'remove_space' => true,
|
|
61
|
-
'default'=> 0.0})
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
52
|
x.report("fancy_read(100 * 1000):") do
|
|
65
|
-
stream = File.open(f.path)
|
|
66
53
|
100.times do
|
|
54
|
+
stream = File.open(f.path)
|
|
67
55
|
Dobjects::Dvector.fancy_read(stream, nil, 'default'=> 0.0)
|
|
68
56
|
end
|
|
69
57
|
end
|
|
@@ -72,23 +60,13 @@ Benchmark.bm do |x|
|
|
|
72
60
|
string = ""
|
|
73
61
|
x.report("string creation:") do
|
|
74
62
|
50000.times do |i|
|
|
75
|
-
string
|
|
63
|
+
string.concat("#{i*1.0}\t#{i**1.3}\t#{i**0.7}\n")
|
|
76
64
|
end
|
|
77
65
|
end
|
|
78
66
|
x.report("fancy_read(50000):") do
|
|
79
67
|
stream = StringIO.new(string)
|
|
80
68
|
Dobjects::Dvector.fancy_read(stream, nil, 'default'=> 0.0).size
|
|
81
69
|
end
|
|
82
|
-
x.report("fast_fancy_read(50000):") do
|
|
83
|
-
stream = StringIO.new(string)
|
|
84
|
-
Dobjects::Dvector.fast_fancy_read(stream, {
|
|
85
|
-
'sep' => /\s+/,
|
|
86
|
-
'comments' => /^\s*\#/,
|
|
87
|
-
'skip_first' => 0,
|
|
88
|
-
'index_col' => false,
|
|
89
|
-
'remove_space' => true,
|
|
90
|
-
'default'=> 0.0}).size
|
|
91
|
-
end
|
|
92
70
|
|
|
93
71
|
end
|
|
94
72
|
|