Mr.CAS 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 62a33629bd1fe8154be4964e99dccd87cd7c060c
4
- data.tar.gz: 6842feded0a74f326b81a6d5513527df10ab3d96
3
+ metadata.gz: a2638186627d0b557e484dc1fb488e39d3b8542b
4
+ data.tar.gz: 568a808afc0705978d21a844cf11827fbd298735
5
5
  SHA512:
6
- metadata.gz: a3d0c46c099e1bb90d2d5a1087b286d079712777e92ed1d5d9c7a1ab7947fac0f98a82414128eadd92d76b1ead31b3fe704b8f0048ed1686e3ef08220a5614cf
7
- data.tar.gz: 07ccfad775f154afff75a097b9c0e0b9233ac023452176dbbbc429417da3fb810c02796ab52d601366d672e7025c9cf8ed4fa95ce2527c4cb878e0816887c39b
6
+ metadata.gz: 2dd320ba5609c77a2d01b6add8086559eae1100de2056c75f089a1632836b3e796b3daa910397c269b6d71b8621587a5cd0e8b9782dee5d3de1f9b1538c0d39f
7
+ data.tar.gz: 5aa0c38704bee2a69418c0bd08a3b648dd6ac2ab57f4daf1c5fe9ef47157bd49bb515e0fdd14a48d45d5ec1d806968c2bac21626edb8efd3ef241a28bc524cc2
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/Mr.CAS.rb CHANGED
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  ##
4
27
  # Mr.CAS
5
28
  # A minmalistic CAS engine with encapsuled graph
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
  module AutoDiff
5
28
  class DualNumber
@@ -27,7 +50,7 @@ module CAS
27
50
  end
28
51
 
29
52
  def -@
30
- DualNumber.new -@x, -@y
53
+ DualNumber.new(-@x, -@y)
31
54
  end
32
55
 
33
56
  def **(v)
@@ -69,9 +92,13 @@ module CAS
69
92
  CAS::Function => Proc.new { |_fd| raise RuntimeError, "Impossible for implicit functions" },
70
93
 
71
94
  # Base functions
72
- CAS::Sum => Proc.new { |fd| @x.auto_diff(fd) + @y.auto_diff(fd) },
95
+ CAS::Sum => Proc.new { |fd|
96
+ @x.map { |e| e.auto_diff(fd) }.inject { |s, e| s += e }
97
+ },
73
98
  CAS::Diff => Proc.new { |fd| @x.auto_diff(fd) - @y.auto_diff(fd) },
74
- CAS::Prod => Proc.new { |fd| @x.auto_diff(fd) * @y.auto_diff(fd) },
99
+ CAS::Prod => Proc.new { |fd|
100
+ @x.map { |e| e.auto_diff(fd) }.inject { |s, e| s += e }
101
+ },
75
102
  CAS::Pow => Proc.new { |fd| @x.auto_diff(fd) ** @y.auto_diff(fd) },
76
103
  CAS::Div => Proc.new { |fd| @x.auto_diff(fd) / @y.auto_diff(fd) },
77
104
  CAS::Sqrt => Proc.new { |fd| @x.auto_diff(fd) ** (CAS::AutoDiff::One / CAS::AutoDiff::Two) },
@@ -112,7 +139,7 @@ module CAS
112
139
  },
113
140
 
114
141
  # Piecewise
115
- CAS::Piecewise => Proc.new { |_fd| raise RuntimeError, "Not implemented auto_diff for Piecewise" },
142
+ CAS::Piecewise => Proc.new { |_fd| raise RuntimeError, "Not implemented AutoDiff for Piecewise" },
116
143
  CAS::Max => Proc.new { |fd|
117
144
  a = @x.auto_diff(fd)
118
145
  b = @y.auto_diff(fd)
@@ -122,7 +149,9 @@ module CAS
122
149
  a = @x.auto_diff(fd)
123
150
  b = @y.auto_diff(fd)
124
151
  (a.x >= b.x ? a : b)
125
- }
152
+ },
153
+
154
+ CAS::Function => Proc.new { |_fd| raise RuntimeError, "Not implemented AutoDiff for implicit functions" }
126
155
  }.each do |cls, blk|
127
156
  cls.send(:define_method, "auto_diff", &blk)
128
157
  end
data/lib/Mr.CAS/c-opt.rb CHANGED
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  # ___ ___ _ _
4
27
  # / __| | _ \ |_ _ __ _(_)_ _
5
28
  # | (__ | _/ | || / _` | | ' \
data/lib/Mr.CAS/c.rb CHANGED
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  # ___ ___ _ _
4
27
  # / __| | _ \ |_ _ __ _(_)_ _
5
28
  # | (__ | _/ | || / _` | | ' \
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  # ___ _ _ ___ _ _
4
27
  # / __|_ _ __ _ _ __| |___ _(_)___ | _ \ |_ _ __ _(_)_ _
5
28
  # | (_ | '_/ _` | '_ \ ' \ V / |_ / | _/ | || / _` | | ' \
data/lib/Mr.CAS/latex.rb CHANGED
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  # _ _____ ____ ___ _ _
4
27
  # | | __ |_ _|__ /_ __ | _ \ |_ _ __ _(_)_ _
5
28
  # | |__/ _` || | |_ \ \ / | _/ | || / _` | | ' \
data/lib/Mr.CAS/matlab.rb CHANGED
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  # __ __ _ _ _ ___ _ _
4
27
  # | \/ |__ _| |_| |__ _| |__ | _ \ |_ _ __ _(_)_ _
5
28
  # | |\/| / _` | _| / _` | '_ \ | _/ | || / _` | | ' \
@@ -14,8 +37,7 @@ module CAS
14
37
  CAS::PI_CONSTANT => Proc.new { |_v| "pi", nil },
15
38
  CAS::INFINITY_CONSTANT => Proc.new { |_v| "Inf", nil },
16
39
  CAS::NEG_INFINITY_CONSTANT => Proc.new { |_v| "(-Inf)", nil },
17
- CAS::E_CONSTANT => Proc.new { |_v|
18
- },
40
+ CAS::E_CONSTANT => Proc.new { |_v| "exp(1.0)", nil },
19
41
  # Base functions
20
42
  CAS::Sum => Proc.new { "(#{x.to_c} + #{y.to_c})" },
21
43
  CAS::Diff => Proc.new { "(#{x.to_c} - #{y.to_c})" },
@@ -1,5 +1,28 @@
1
1
  #!/usr/vin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
  # ___ _ __ __
5
28
  # | \(_)/ _|/ _|
@@ -1,5 +1,28 @@
1
1
  #!//usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
  # ___ ___ _ _ _ _
5
28
  # | _ ) _____ __/ __|___ _ _ __| (_) |_(_)___ _ _
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
  # ___ _ _ _ _
5
28
  # / __|___ _ _ __| (_) |_(_)___ _ _
@@ -114,10 +137,10 @@ module CAS
114
137
 
115
138
  # Return true if two functions are equal, false if different
116
139
  #
117
- # * **argument**: `CAS::Op` operator to check against for equality
140
+ # * **argument**: `CAS::Condition` operator to check against for equality
118
141
  # * **returns**: `TrueClass` or `FalseClass`
119
142
  def ==(op)
120
- CAS::Help.assert(op, CAS::Op)
143
+ CAS::Help.assert(op, CAS::Condition)
121
144
 
122
145
  # condB = (@x == op.y) and (@y == op.x)
123
146
  return ((@x == op.x) and (@y == op.y) and (self.class == op.class))
@@ -127,8 +150,8 @@ module CAS
127
150
  #
128
151
  # * **returns**: `CAS::Condition`
129
152
  def simplify
130
- @x.simplify
131
- @y.simplify
153
+ @x = @x.simplify
154
+ @x = @y.simplify
132
155
  return self
133
156
  end
134
157
 
@@ -141,14 +164,6 @@ module CAS
141
164
  @y.subs(fd)
142
165
  return self
143
166
  end
144
-
145
- # Returns the dot graphviz representation of the code
146
- #
147
- # * **returns**: `String`
148
- def dot_graph(node)
149
- cls = "#{self.class.to_s.gsub("CAS::", "")}_#{self.object_id}"
150
- "#{cls} -> #{@x.dot_graph node}\n #{cls} -> #{@y.dot_graph node}"
151
- end
152
167
  end # Condition
153
168
 
154
169
  # ___ _
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
  # ___ _ _
5
28
  # | _ (_)___ __ _____ __ _(_)___ ___
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
 
5
28
  # ___ _
@@ -52,8 +75,11 @@ module CAS
52
75
  # * **returns**: `Numeric`
53
76
  def call(f)
54
77
  CAS::Help.assert(f, Hash)
55
-
56
- return @x.inject { |p, y| p = p.overloaded_mul(y.call(f)) }
78
+ p = 1
79
+ @x.each do |y|
80
+ p = p.overloaded_mul(y.call(f))
81
+ end
82
+ p
57
83
  end
58
84
 
59
85
  # Convert expression to string
@@ -1,3 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
1
26
  module CAS
2
27
  # ___
3
28
  # / __|_ _ _ __
@@ -40,7 +65,11 @@ module CAS
40
65
  # * **returns**: `Numeric`
41
66
  def call(f)
42
67
  CAS::Help.assert(f, Hash)
43
- return @x.inject { |val, x_i| val += x_i.call(f) }
68
+ p = 0
69
+ @x.each do |y|
70
+ p = p.overloaded_plus(y.call(f))
71
+ end
72
+ p
44
73
  end
45
74
 
46
75
  # Convert expression to string
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
  # ___ _
5
28
  # / __(_)_ _
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
  # ___ _
5
28
  # | __|_ ___ __ ___ _ _ ___ _ _| |_
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
  # ___ _ _
5
28
  # / __|___ _ _ __| |_ __ _ _ _| |_
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
  # ___ _ _
5
28
  # | __| _ _ _ __| |_(_)___ _ _
@@ -141,13 +164,15 @@ module CAS
141
164
  def diff(v)
142
165
  # return CAS.declare :"d#{@name}[#{v}]", @x
143
166
  ret = []
144
- @x.each_with_index do |x, k|
145
- dx = (x.depend?(v) ? x.diff(v) : CAS::Zero)
146
- dfx = CAS.declare :"D#{@name}[#{k}]", @x
147
- ret << dx * dfx
167
+ @x.each_with_index do |y, k|
168
+ dy = (y.depend?(v) ? y.diff(v) : CAS::Zero)
169
+ dfy = CAS.declare :"D#{@name}[#{k}]", @x
170
+ ret << (dy * dfy)
148
171
  end
149
172
  return CAS::Zero if ret == []
150
- return ret.inject { |d, e| d += e }
173
+ a = ret[0]
174
+ ret[1..-1].each { |e| a += e } if ret.size > 1
175
+ return a
151
176
  end
152
177
 
153
178
  # Trying to call a `CAS::Function` will always return a `CAS::Error`
@@ -157,10 +182,12 @@ module CAS
157
182
  raise CASError, "Cannot call a #{self.class}"
158
183
  end
159
184
 
160
- # Returns the inspect string of the function, that is similar to `CAS::Function#to_s`
185
+ # # Returns the inspect string of the function, that is similar to `CAS::Function#to_s`
186
+ # #
187
+ # # * **returns**: inspection `String`
188
+ # def inspect;
161
189
  #
162
- # * **returns**: inspection `String`
163
- def inspect; self.to_s; end
190
+ # end
164
191
 
165
192
  # Returns a description `String` for the `CAS::Function`
166
193
  #
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
  # __ __ _ _ _
5
28
  # \ \ / /_ _ _ _(_)__ _| |__| |___
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
  # ___ _ ___
5
28
  # | _ |_)_ _ __ _ _ _ _ _ / _ \ _ __
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
  # This is an attempt to build some sort of node in the graph that
5
28
  # has arbitrary number of childs node. It should help implement more easily
@@ -33,7 +56,11 @@ module CAS
33
56
  # * **returns**: `TrueClass` or `FalseClass`
34
57
  def depend?(v)
35
58
  CAS::Help.assert(v, CAS::Op)
36
- @x.include? v
59
+ ret = false
60
+ @x.each do |y|
61
+ ret |= y.depend?(v)
62
+ end
63
+ return ret
37
64
  end
38
65
 
39
66
  # Return a list of derivative using the chain rule. The input is a
data/lib/operators/op.rb CHANGED
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
  class CASError < RuntimeError; end
5
28
 
@@ -198,7 +221,7 @@ module CAS
198
221
  end
199
222
 
200
223
  # Simplify dictionary performs a dictionary simplification
201
- # that is the class variable `@@simplify_dict`
224
+ # that is the class variable `@simplify_dict`
202
225
  #
203
226
  # * **returns**: `CAS::Op` self
204
227
  def simplify_dictionary
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  ##
4
27
  # Overloading operators for Fixnum. Operations that are
5
28
  # oveloaded are:
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  ##
4
27
  # Overloading operators for Float. Operations that are
5
28
  # oveloaded are:
data/lib/version.rb CHANGED
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Copyright (c) 2016 Matteo Ragni
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person
6
+ # obtaining a copy of this software and associated documentation
7
+ # files (the "Software"), to deal in the Software without
8
+ # restriction, including without limitation the rights to use,
9
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following
12
+ # conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ # OTHER DEALINGS IN THE SOFTWARE.
25
+
3
26
  module CAS
4
27
  # Version of the library
5
28
  # Array of three `Fixnum` values:
@@ -7,6 +30,6 @@ module CAS
7
30
  # * Major version
8
31
  # * Minor version
9
32
  # * Patchlevel
10
- VERSION = [0, 2, 6]
33
+ VERSION = [0, 2, 7]
11
34
  end
12
35
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Mr.CAS
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matteo Ragni
@@ -29,7 +29,7 @@ cert_chain:
29
29
  XorZtzkkLImvKFj35xKLFfVkv0Vd8tGQoiL8vdmQNJjAjtE+C+Y7OI4dpiZPKO4G
30
30
  R/8JOvUuk9jPbyLxjQH/sFaFqqYGX2xo1zk2CRy/A0WhJrSaXVw1r5lEi7b0W5gg
31
31
  -----END CERTIFICATE-----
32
- date: 2016-11-28 00:00:00.000000000 Z
32
+ date: 2016-12-01 00:00:00.000000000 Z
33
33
  dependencies: []
34
34
  description:
35
35
  email: info@ragni.me
@@ -84,5 +84,6 @@ rubyforge_project:
84
84
  rubygems_version: 2.5.2
85
85
  signing_key:
86
86
  specification_version: 4
87
- summary: A Minimalistic Ruby CAS, for rapid prototyping and meta-programming
87
+ summary: A [M]inimalistic [R]uby [C]omputer [A]lgebra [S]ystem, for rapid prototyping
88
+ and meta-programming
88
89
  test_files: []
metadata.gz.sig CHANGED
@@ -1,2 +1 @@
1
- vQ8���c #�[ K-e���SuJ)Y���b�������h�e�(��i��Ư����}~(��R{,�~�-f��N]ٳ{�^p:�Mz}����b�;�"b��TJ��,߶'Op|�~��s|��� ���`+����@=ns7~ C:�5YȈ;��"�������3�<
2
- ,��O����������iL�$�Ia��M&�n�t=L8+F|�}�&A�axi��A����u���].��v�"7uZu՚.F5�
1
+ >>��i'��޼UY�����ޟ����o6vm),��3I���r��ˇ�Do��xF��m",���?EvK���\�(���lBr8�(�9��#���e��J ���#�����lx&�ټ0_��4��m��C��4)Y_ �՟�/mePa:a�l^@fMxs.�Bi%�c[?��#��v@ނ��/�ĦlO пc�I��v�&I��9�ǫ�r����Hݔiw|*����G�+���;�mBw\<�#