Mr.CAS 0.2.6 → 0.2.7

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 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\<�#