ragni-cas 0.1.0 → 0.1.2

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: 865e68bc49826e2cf3c598fcb830c38929cb226d
4
- data.tar.gz: e2685fded45fa443f467f3a40033c25595a006d7
3
+ metadata.gz: 09856ab0553a66e76a5a9bd71ddc59d12ec2af28
4
+ data.tar.gz: a5bd297c51c96b39731d4a561572010c74d5013a
5
5
  SHA512:
6
- metadata.gz: 0c1084b05b544cf06f8ff9248cd74a3a9774054ff3b96901370bfbf3336763eabf218c0346b539acd1128d7aabf56de9f8355743e4aa4c8263f381903d46b207
7
- data.tar.gz: 97b1c18b185911086f604db022e5f2943a75e667f9a3320463bd747b6ffeaa71afa63b8b9da622e04e609448b3409f58aedf369a15c4bcb1d03b20a5053cc1b0
6
+ metadata.gz: ac2fc2c0e02c3991e53034fc7d56c85469191b4acb83a33933460301dddb2f8eed6822576ade3b4bafa6625a752e75e9875bf3c5a63344cc043a9ac9bd0dfd2d
7
+ data.tar.gz: 533b0f98f738d4f8281d49e23a1576374b7aad6f1e3e8ec5d929b5756e607f0712c4ac977457002bf607d8d4b33474fed722b7c592c44bb4422b9e3a150b2eb1
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/fnc-base.rb CHANGED
@@ -37,6 +37,10 @@ module CAS
37
37
  end
38
38
  return self
39
39
  end
40
+
41
+ def to_code
42
+ "(#{@x.to_code} + #{@y.to_code})"
43
+ end
40
44
  end # Sum
41
45
 
42
46
  # ___ _ __ __
@@ -75,6 +79,10 @@ module CAS
75
79
  end
76
80
  return self
77
81
  end
82
+
83
+ def to_code
84
+ "(#{@x.to_code} - #{@y.to_code})"
85
+ end
78
86
  end # Difference
79
87
 
80
88
  # ___ _
@@ -116,6 +124,10 @@ module CAS
116
124
  end
117
125
  return self
118
126
  end
127
+
128
+ def to_code
129
+ "(#{@x.to_code} * #{@y.to_code})"
130
+ end
119
131
  end # Prod
120
132
 
121
133
  # ___
@@ -161,6 +173,10 @@ module CAS
161
173
  end
162
174
  return self
163
175
  end
176
+
177
+ def to_code
178
+ "(#{@x.to_code} ** #{@y.to_code})"
179
+ end
164
180
  end
165
181
 
166
182
  def self.pow(x, y)
@@ -210,6 +226,10 @@ module CAS
210
226
  end
211
227
  return self
212
228
  end
229
+
230
+ def to_code
231
+ "(#{@x.to_code} / #{@y.to_code})"
232
+ end
213
233
  end # Div
214
234
 
215
235
  # ___ _
@@ -250,6 +270,10 @@ module CAS
250
270
  end
251
271
  return self
252
272
  end
273
+
274
+ def to_code
275
+ "Math::sqrt(#{@x.to_code})"
276
+ end
253
277
  end # Sqrt
254
278
 
255
279
  def self.sqrt(x)
@@ -287,6 +311,10 @@ module CAS
287
311
  end
288
312
  return self
289
313
  end
314
+
315
+ def to_code
316
+ "(-#{@x.to_code})"
317
+ end
290
318
  end
291
319
 
292
320
  def self.invert(x)
@@ -325,6 +353,10 @@ module CAS
325
353
  end
326
354
  return self
327
355
  end
356
+
357
+ def to_code
358
+ "(#{@x.to_code}).abs"
359
+ end
328
360
  end
329
361
 
330
362
  def self.abs(x)
data/lib/fnc-trig.rb CHANGED
@@ -35,6 +35,10 @@ module CAS
35
35
  end
36
36
  return self
37
37
  end
38
+
39
+ def to_code
40
+ "Math::sin(#{@x.to_code})"
41
+ end
38
42
  end # Sin
39
43
 
40
44
  def self.sin(x)
@@ -75,6 +79,10 @@ module CAS
75
79
  end
76
80
  return self
77
81
  end
82
+
83
+ def to_code
84
+ "Math::asin(#{@x.to_code})"
85
+ end
78
86
  end
79
87
 
80
88
  def self.asin(x)
@@ -115,6 +123,10 @@ module CAS
115
123
  end
116
124
  return self
117
125
  end
126
+
127
+ def to_code
128
+ "Math::cos(#{@x.to_code})"
129
+ end
118
130
  end
119
131
 
120
132
  def self.cos(x)
@@ -155,6 +167,10 @@ module CAS
155
167
  end
156
168
  return self
157
169
  end
170
+
171
+ def to_code
172
+ "Math::acos(#{@x.to_code})"
173
+ end
158
174
  end
159
175
 
160
176
  def self.acos(x)
@@ -195,6 +211,10 @@ module CAS
195
211
  end
196
212
  return self
197
213
  end
214
+
215
+ def to_code
216
+ "Math::tan(#{@x.to_code})"
217
+ end
198
218
  end
199
219
 
200
220
  def self.tan(x)
@@ -238,6 +258,10 @@ module CAS
238
258
  end
239
259
  return self
240
260
  end
261
+
262
+ def to_code
263
+ "Math::atan(#{@x.to_code})"
264
+ end
241
265
  end
242
266
 
243
267
  def self.atan(x)
data/lib/fnc-trsc.rb CHANGED
@@ -39,6 +39,10 @@ module CAS
39
39
  end
40
40
  return self
41
41
  end
42
+
43
+ def to_code
44
+ "Math::exp(#{@x.to_code})"
45
+ end
42
46
  end # Exp
43
47
 
44
48
  def self.exp(x)
@@ -85,6 +89,10 @@ module CAS
85
89
  end
86
90
  return self
87
91
  end
92
+
93
+ def to_code
94
+ "Math::log(#{@x.to_code})"
95
+ end
88
96
  end # Ln
89
97
 
90
98
  def self.ln(x)
data/lib/op.rb CHANGED
@@ -44,6 +44,10 @@ module CAS
44
44
  "#{@x}"
45
45
  end
46
46
 
47
+ def to_code
48
+ raise CASError, "Not implemented. This is a virtual method"
49
+ end
50
+
47
51
  def +(op)
48
52
  CAS::Sum.new self, op
49
53
  end
@@ -125,6 +129,10 @@ module CAS
125
129
  raise CASError, "Not Implemented. This is a virtual method"
126
130
  end
127
131
 
132
+ def to_code
133
+ raise CASError, "Not implemented. This is a virtual method"
134
+ end
135
+
128
136
  def simplify # TODO: improve this
129
137
  hash = @x.to_s
130
138
  @x = @x.simplify
data/lib/ragni-cas.rb CHANGED
@@ -5,3 +5,12 @@ require_relative 'numbers.rb'
5
5
  require_relative 'fnc-base.rb'
6
6
  require_relative 'fnc-trig.rb'
7
7
  require_relative 'fnc-trsc.rb'
8
+
9
+ module CAS
10
+ VERSION = [0, 1, 2]
11
+
12
+ def self.as_method(binding, op)
13
+ code = op.to_code
14
+ puts code
15
+ end
16
+ end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ragni-cas
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matteo Ragni
metadata.gz.sig CHANGED
Binary file