matrix_dsl 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ pkg
data/README.markdown CHANGED
@@ -11,8 +11,8 @@ You can execute script similar to:
11
11
  ]
12
12
 
13
13
  Transform M1:
14
- R2 <- 2R2 + R3
15
- C3 <- C3 - C1
14
+ R2 -> 2R2 + R3
15
+ C3 -> C3 - C1
16
16
 
17
17
  det_m1 = det M1
18
18
 
@@ -37,7 +37,7 @@ Usage
37
37
  ==========
38
38
 
39
39
  gem install matrix_dsl
40
- matrix_dsl_run < curl http://github.com/jasim/matrix_transformations/blob/master/example.matrix_dsl
40
+ matrix_dsl_run < curl http://github.com/jasim/matrix_transformations/blob/master/examples/simple_example.matrix_dsl
41
41
 
42
42
  To integrate Matrix DSL scripts into your code, please have a look at http://github.com/jasim/matrix_transformations/blob/master/tests/basic_test.rb
43
43
 
data/Rakefile ADDED
@@ -0,0 +1,56 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "matrix_dsl"
8
+ gem.summary = %Q{A simple DSL for expressing and evaluating basic Matrix transformations and arithmetic operations}
9
+ gem.description = gem.summary
10
+ gem.email = "jasim.ab@gmail.com"
11
+ gem.homepage = "http://github.com/jasim/matrix_dsl"
12
+ gem.authors = ["Jasim A Basheer"]
13
+ gem.add_dependency "treetop"
14
+ gem.add_dependency "colorize"
15
+ end
16
+ rescue LoadError
17
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
18
+ end
19
+
20
+ require 'rake/testtask'
21
+ Rake::TestTask.new(:test) do |test|
22
+ test.libs << 'lib' << 'test'
23
+ test.pattern = 'test/**/*_test.rb'
24
+ test.verbose = true
25
+ end
26
+
27
+ begin
28
+ require 'rcov/rcovtask'
29
+ Rcov::RcovTask.new do |test|
30
+ test.libs << 'test'
31
+ test.pattern = 'test/**/*_test.rb'
32
+ test.verbose = true
33
+ end
34
+ rescue LoadError
35
+ task :rcov do
36
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
37
+ end
38
+ end
39
+
40
+ task :test => :check_dependencies
41
+
42
+ task :default => :test
43
+
44
+ require 'rake/rdoctask'
45
+ Rake::RDocTask.new do |rdoc|
46
+ if File.exist?('VERSION')
47
+ version = File.read('VERSION')
48
+ else
49
+ version = ""
50
+ end
51
+
52
+ rdoc.rdoc_dir = 'rdoc'
53
+ rdoc.title = "matrix_dsl #{version}"
54
+ rdoc.rdoc_files.include('README*')
55
+ rdoc.rdoc_files.include('lib/**/*.rb')
56
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.1.0
@@ -0,0 +1,17 @@
1
+ A = [
2
+ [1 -1 0 2 1]
3
+ [3 1 1 -1 2]
4
+ [4 0 1 0 3]
5
+ [9 -1 2 3 7]
6
+ ]
7
+
8
+ Transform A:
9
+ R2 -> R2 - 3R1
10
+ R3 -> R3 - 4R1
11
+ R4 -> R4 - 9R1
12
+
13
+ R3 -> R3 - R2
14
+ R4 -> R4 - 2R2
15
+
16
+ R3 -> R3 - R4
17
+
@@ -12,9 +12,9 @@ grammar MatrixTransformations
12
12
  # === Matrix transformation grammar ===
13
13
  # ie those inside the 'Transform' block:
14
14
  # Transform M1:
15
- # R1 <- R1 + R2
16
- # R3 <- 3R3
17
- # R4 <- R4/2
15
+ # R1 -> R1 + R2
16
+ # R3 -> 3R3
17
+ # R4 -> R4/2
18
18
  # etc.
19
19
 
20
20
  rule transformation
@@ -30,7 +30,7 @@ grammar MatrixTransformations
30
30
  end
31
31
 
32
32
  rule transform_operator
33
- space "<-" space
33
+ space "->" space
34
34
  end
35
35
 
36
36
  rule transform_expression
@@ -89,7 +89,7 @@ grammar MatrixTransformations
89
89
 
90
90
  #-- Rest of the stuff:
91
91
  rule number
92
- [0-9]+ <MatrixDSL::NodeNumber>
92
+ [\-]? [0-9]+ <MatrixDSL::NodeNumber>
93
93
  end
94
94
 
95
95
  rule function
@@ -14,7 +14,7 @@ module MatrixDSL_Helpers
14
14
  error_found=false
15
15
 
16
16
  script.rstrip!
17
- print "\n\nExecuting script:".yellow
17
+ print "\nExecuting script:\n".yellow
18
18
  puts script.blue
19
19
 
20
20
  $matrix_dsl_vars.clear # Start with a fresh state.
@@ -46,7 +46,7 @@ module MatrixDSL_Helpers
46
46
 
47
47
 
48
48
  puts "success".green
49
- return !error_found
49
+ return true
50
50
  end
51
51
 
52
52
  # Displays given script, but highlights the character at supplied offset in red color.
@@ -0,0 +1,54 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{matrix_dsl}
8
+ s.version = "1.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Jasim A Basheer"]
12
+ s.date = %q{2010-10-26}
13
+ s.description = %q{A simple DSL for expressing and evaluating basic Matrix transformations and arithmetic operations}
14
+ s.email = %q{jasim.ab@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.markdown"
18
+ ]
19
+ s.files = [
20
+ ".gitignore",
21
+ "LICENSE",
22
+ "README.markdown",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "examples/simple_example.matrix_dsl",
26
+ "lib/matrix_dsl.rb",
27
+ "lib/matrix_dsl_def.treetop",
28
+ "lib/matrix_dsl_helpers.rb",
29
+ "matrix_dsl.gemspec",
30
+ "matrix_dsl_run.rb",
31
+ "tests/basic_test.rb"
32
+ ]
33
+ s.homepage = %q{http://github.com/jasim/matrix_dsl}
34
+ s.rdoc_options = ["--charset=UTF-8"]
35
+ s.require_paths = ["lib"]
36
+ s.rubygems_version = %q{1.3.7}
37
+ s.summary = %q{A simple DSL for expressing and evaluating basic Matrix transformations and arithmetic operations}
38
+
39
+ if s.respond_to? :specification_version then
40
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
41
+ s.specification_version = 3
42
+
43
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
44
+ s.add_runtime_dependency(%q<treetop>, [">= 0"])
45
+ s.add_runtime_dependency(%q<colorize>, [">= 0"])
46
+ else
47
+ s.add_dependency(%q<treetop>, [">= 0"])
48
+ s.add_dependency(%q<colorize>, [">= 0"])
49
+ end
50
+ else
51
+ s.add_dependency(%q<treetop>, [">= 0"])
52
+ s.add_dependency(%q<colorize>, [">= 0"])
53
+ end
54
+ end
data/matrix_dsl_run.rb CHANGED
@@ -2,8 +2,9 @@ require 'rubygems'
2
2
  require 'ruby-debug'
3
3
  require 'colorize'
4
4
 
5
- require 'lib/matrix_dsl.rb'
6
- require 'lib/matrix_dsl_helpers.rb'
5
+ $:.unshift File.join(File.dirname(__FILE__),'lib')
6
+ require 'matrix_dsl.rb'
7
+ require 'matrix_dsl_helpers.rb'
7
8
  include MatrixDSL
8
9
  include MatrixDSL_Helpers
9
10
 
data/tests/basic_test.rb CHANGED
@@ -67,9 +67,9 @@ class BasicTest < Test::Unit::TestCase
67
67
  det2 = det M1
68
68
 
69
69
  Transform M1:
70
- R1 <- R1 + R2
71
- R3 <- R3 - R2
72
- R2 <- 2R2
70
+ R1 -> R1 + R2
71
+ R3 -> R3 - R2
72
+ R2 -> 2R2
73
73
  "
74
74
 
75
75
  expected = {"M1"=>Matrix[[4.0, 4.0, 4.0], [6.0, 4.0, 2.0], [2.0, -1.0, 1.0]], "det1"=>-20.0, "det2"=>-20.0}
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: matrix_dsl
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
+ - 1
8
9
  - 0
9
- - 0
10
- version: 1.0.0
10
+ version: 1.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jasim A Basheer
@@ -56,14 +56,18 @@ extra_rdoc_files:
56
56
  - LICENSE
57
57
  - README.markdown
58
58
  files:
59
+ - .gitignore
60
+ - LICENSE
59
61
  - README.markdown
60
- - example.matrix_dsl
62
+ - Rakefile
63
+ - VERSION
64
+ - examples/simple_example.matrix_dsl
61
65
  - lib/matrix_dsl.rb
62
66
  - lib/matrix_dsl_def.treetop
63
67
  - lib/matrix_dsl_helpers.rb
68
+ - matrix_dsl.gemspec
64
69
  - matrix_dsl_run.rb
65
70
  - tests/basic_test.rb
66
- - LICENSE
67
71
  has_rdoc: true
68
72
  homepage: http://github.com/jasim/matrix_dsl
69
73
  licenses: []
data/example.matrix_dsl DELETED
@@ -1,11 +0,0 @@
1
-
2
- x=33
3
- m1=[ [10 23]
4
- [45 33]
5
- ]
6
-
7
- d_m1 = det m1
8
- rank_m1 = rank m1
9
-
10
- m2 = m1 * x
11
- d_m2 = det m2