BOAST 1.0.9 → 1.1.0
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.
- checksums.yaml +4 -4
- data/BOAST.gemspec +1 -1
- data/lib/BOAST.rb +5 -1
- data/lib/BOAST/Language/Algorithm.rb +104 -22
- data/lib/BOAST/Language/Annotation.rb +55 -0
- data/lib/BOAST/Language/Arithmetic.rb +44 -10
- data/lib/BOAST/Language/Case.rb +89 -52
- data/lib/BOAST/Language/CodeBlock.rb +17 -0
- data/lib/BOAST/Language/Comment.rb +38 -0
- data/lib/BOAST/Language/ControlStructure.rb +7 -0
- data/lib/BOAST/Language/Error.rb +7 -0
- data/lib/BOAST/Language/Expression.rb +4 -5
- data/lib/BOAST/Language/For.rb +59 -27
- data/lib/BOAST/Language/If.rb +12 -17
- data/lib/BOAST/Language/Index.rb +5 -5
- data/lib/BOAST/Language/Intrinsics.rb +38 -32
- data/lib/BOAST/Language/OpenMP.rb +1 -1
- data/lib/BOAST/Language/Operators.rb +208 -53
- data/lib/BOAST/Language/Pragma.rb +3 -3
- data/lib/BOAST/Language/Print.rb +3 -3
- data/lib/BOAST/Language/Procedure.rb +15 -8
- data/lib/BOAST/Language/Variable.rb +45 -87
- data/lib/BOAST/Language/While.rb +3 -0
- data/lib/BOAST/Optimization/Optimization.rb +241 -0
- metadata +7 -4
- data/lib/BOAST/Language/Optimization.rb +0 -74
- data/lib/BOAST/Language/Vector.rb +0 -6
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: BOAST
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brice Videau
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: narray
|
@@ -196,13 +196,17 @@ files:
|
|
196
196
|
- README.md
|
197
197
|
- lib/BOAST.rb
|
198
198
|
- lib/BOAST/Language/Algorithm.rb
|
199
|
+
- lib/BOAST/Language/Annotation.rb
|
199
200
|
- lib/BOAST/Language/Architectures.rb
|
200
201
|
- lib/BOAST/Language/Arithmetic.rb
|
201
202
|
- lib/BOAST/Language/BOAST_OpenCL.rb
|
202
203
|
- lib/BOAST/Language/CPUID_by_name.rb
|
203
204
|
- lib/BOAST/Language/Case.rb
|
205
|
+
- lib/BOAST/Language/CodeBlock.rb
|
206
|
+
- lib/BOAST/Language/Comment.rb
|
204
207
|
- lib/BOAST/Language/ControlStructure.rb
|
205
208
|
- lib/BOAST/Language/DataTypes.rb
|
209
|
+
- lib/BOAST/Language/Error.rb
|
206
210
|
- lib/BOAST/Language/Expression.rb
|
207
211
|
- lib/BOAST/Language/For.rb
|
208
212
|
- lib/BOAST/Language/FuncCall.rb
|
@@ -213,7 +217,6 @@ files:
|
|
213
217
|
- lib/BOAST/Language/Intrinsics.rb
|
214
218
|
- lib/BOAST/Language/OpenMP.rb
|
215
219
|
- lib/BOAST/Language/Operators.rb
|
216
|
-
- lib/BOAST/Language/Optimization.rb
|
217
220
|
- lib/BOAST/Language/Parens.rb
|
218
221
|
- lib/BOAST/Language/Pragma.rb
|
219
222
|
- lib/BOAST/Language/Print.rb
|
@@ -222,8 +225,8 @@ files:
|
|
222
225
|
- lib/BOAST/Language/State.rb
|
223
226
|
- lib/BOAST/Language/Transitions.rb
|
224
227
|
- lib/BOAST/Language/Variable.rb
|
225
|
-
- lib/BOAST/Language/Vector.rb
|
226
228
|
- lib/BOAST/Language/While.rb
|
229
|
+
- lib/BOAST/Optimization/Optimization.rb
|
227
230
|
- lib/BOAST/Runtime/CKernel.rb
|
228
231
|
- lib/BOAST/Runtime/CRuntime.rb
|
229
232
|
- lib/BOAST/Runtime/CUDARuntime.rb
|
@@ -1,74 +0,0 @@
|
|
1
|
-
module BOAST
|
2
|
-
|
3
|
-
class OptimizationParameter
|
4
|
-
attr_reader :name
|
5
|
-
attr_reader :values
|
6
|
-
def initialize( name, values )
|
7
|
-
@name = name
|
8
|
-
@values = values
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
class BooleanParameter < OptimizationParameter
|
13
|
-
def initialize( name )
|
14
|
-
super( name, [false, true] )
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
OP = OptimizationParameter
|
19
|
-
BP = BooleanParameter
|
20
|
-
|
21
|
-
class GenericOptimization
|
22
|
-
|
23
|
-
attr_accessor :repeat
|
24
|
-
attr_reader :parameters
|
25
|
-
|
26
|
-
|
27
|
-
def size
|
28
|
-
return @parameters.size
|
29
|
-
end
|
30
|
-
|
31
|
-
def points
|
32
|
-
pts=[]
|
33
|
-
params2 = @parameters.dup
|
34
|
-
param = params2.shift
|
35
|
-
optim2 = GenericOptimization::new(*params2)
|
36
|
-
param.values.each{ |val|
|
37
|
-
pts.push({param.name.to_sym => val})
|
38
|
-
}
|
39
|
-
if optim2.size == 0 then
|
40
|
-
return pts
|
41
|
-
else
|
42
|
-
pts3=[]
|
43
|
-
pts.each{ |p1|
|
44
|
-
optim2.each { |p2|
|
45
|
-
pts3.push(p1.dup.update(p2))
|
46
|
-
}
|
47
|
-
}
|
48
|
-
return pts3
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def each(&block)
|
53
|
-
return self.points.each(&block)
|
54
|
-
end
|
55
|
-
|
56
|
-
def each_random(&block)
|
57
|
-
return self.points.shuffle.each(&block)
|
58
|
-
end
|
59
|
-
|
60
|
-
def initialize( *parameters )
|
61
|
-
if parameters.length == 1 and parameters[0].is_a?(Hash) then
|
62
|
-
@parameters = []
|
63
|
-
parameters[0].each { |key, value|
|
64
|
-
@parameters.push( OptimizationParameter::new(key, value) )
|
65
|
-
}
|
66
|
-
else
|
67
|
-
@parameters = parameters
|
68
|
-
end
|
69
|
-
@repeat = 3
|
70
|
-
end
|
71
|
-
|
72
|
-
end
|
73
|
-
|
74
|
-
end
|