math_wizard 0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/math_wizard.rb +106 -0
  3. metadata +43 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 07e3a79a19839d9cec3bc67d78b683c32c43878eeea0ede24a6ee3930cd5a5f2
4
+ data.tar.gz: 198b6f299665898b6a23fef7e2bdbece11369a15ced9dbb5e8378a400dfba539
5
+ SHA512:
6
+ metadata.gz: b95d058f73b5d048afd245bbf33c49cc04d1404d55665a250bd313c05dd8c862630bb6283cd5c65bfd398842bd5628eabd38b29c6c9bf0f19eaa7c5b5f00e0a6
7
+ data.tar.gz: 281ddcb254f1ad6230a602738c7ae15851edd93bf39f22234373b380ad31aa72019401b15fd0e30b546f2a9b8486c8ced9c70e04ee7d89dff38504f46299ed4a
@@ -0,0 +1,106 @@
1
+
2
+
3
+ class MathWizard
4
+ def self.hi
5
+ puts 'Hello world!'
6
+ end
7
+
8
+ def self.add(*arr)
9
+ if arr[0].instance_of?(Array)
10
+ if arr[0][0].instance_of?(Array)
11
+ new_arr = []
12
+ (0...arr[0].length).each do |i|
13
+ new_arr.push(arr[0][i].sum)
14
+ end
15
+ new_arr
16
+ elsif arr[0].instance_of?(Array)
17
+ new_arr = []
18
+ ind = 0
19
+ (0...arr.length).each do |i|
20
+ ind = arr[i].length if arr[i].length > ind
21
+ end
22
+ (0...ind).each do |i|
23
+ sum = 0
24
+ (0...arr.length).each do |j|
25
+ sum += arr[j][i] if i < arr[j].length
26
+ end
27
+ new_arr.push(sum)
28
+ end
29
+ new_arr
30
+ else
31
+ arr[0].sum
32
+ end
33
+ else
34
+ arr.sum
35
+ end
36
+ end
37
+
38
+ def self.abs_arr(arr)
39
+ (0...arr.length).each do |i|
40
+ arr[i] = arr[i].abs
41
+ end
42
+ arr
43
+ end
44
+
45
+ def self.sub(*arr)
46
+ actual_arr = []
47
+ if arr[0].instance_of?(Array)
48
+ (0...arr[0].length).each do |i|
49
+ actual_arr.push(arr[0][i] - arr[1][i])
50
+ end
51
+ MathWizard.abs_arr(actual_arr)
52
+ else
53
+ (arr[0] - arr[1]).abs
54
+ end
55
+ end
56
+
57
+ def self.divide(*arr)
58
+ actual_arr = []
59
+ if arr[0].instance_of?(Array)
60
+ (0...arr[0].length).each do |i|
61
+ actual_arr.push(arr[0][i] / arr[1][i])
62
+ end
63
+ actual_arr
64
+ else
65
+ arr[0] / arr[1]
66
+ end
67
+ end
68
+
69
+ def self.multiply(*arr)
70
+ if arr[0].instance_of?(Array)
71
+ if arr[0][0].instance_of?(Array)
72
+ new_arr = []
73
+ (0...arr[0].length).each do |i|
74
+ new_arr.push(arr[0][i].inject(:*))
75
+ end
76
+ new_arr
77
+ elsif arr[0].instance_of?(Array)
78
+ new_arr = []
79
+ ind = 0
80
+ (0...arr.length).each do |i|
81
+ ind = arr[i].length if arr[i].length > ind
82
+ end
83
+ (0...ind).each do |i|
84
+ sum_value = 1
85
+ (0...arr.length).each do |j|
86
+ sum_value *= arr[j][i] if i < arr[j].length
87
+ end
88
+ new_arr.push(sum_value)
89
+ end
90
+ new_arr
91
+ else
92
+ arr[0].inject(:*)
93
+ end
94
+ else
95
+ arr.inject(:*)
96
+ end
97
+ end
98
+
99
+ def self.fahrenheit(celsius:)
100
+ ((9 / 5) * celsius) + 32
101
+ end
102
+
103
+ def self.celsius(fahrenheit:)
104
+ (fahrenheit - 32) * (5 / 9)
105
+ end
106
+ end
metadata ADDED
@@ -0,0 +1,43 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: math_wizard
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.0'
5
+ platform: ruby
6
+ authors:
7
+ - Prabudeva
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-12-16 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Gem for mathematical functions
14
+ email: prabudeva1801@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/math_wizard.rb
20
+ homepage: https://rubygems.org/gems/math_wizard
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubygems_version: 3.2.32
40
+ signing_key:
41
+ specification_version: 4
42
+ summary: Math Wizard!
43
+ test_files: []