logic_tools 0.3.4 → 0.3.5

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: 84eda2845101b1b4e6e59e9ad408f4d2e246e930
4
- data.tar.gz: f2b8eaa53ef5b7f14e7a93240a12acc122021d92
3
+ metadata.gz: 70d95a4f55c418f319f6757dcd33238a96e29942
4
+ data.tar.gz: 41b8969baf1766988bfbd87d49ac42bda2c70b95
5
5
  SHA512:
6
- metadata.gz: b13d4bb1a6227c6abc413296077d374dbbf833b701830ebf5a5d2ad24ef7c13e9a8561367a7ccd67db7bcfb1044c1bfdd5b1755142858ea082d704f6e54a91ca
7
- data.tar.gz: 57e5fd61601d088914c024c812b5310474dbd6c526c70169ddacb16098f47e40bf798aa40697156bae67b16c81d9bfb4194180a4192ccd07ed728c2da11e5455
6
+ metadata.gz: 26fe17b9471050c15cc5df53bc49cc87a4e280954853871845706d84317e2c3b76c79d83efe94257a3536048b6cfb09c1e68414d3cd0e1e1f3f160a26866ca00
7
+ data.tar.gz: 07e758d9512566bd492b8644fd074769be0e2db6ee7b18d8df1f713c21aadf8dbdec2beeeb842e8a6512a5b1adc513efcb9d7d319f72f16581081160d256d8a4
data/exe/complement ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+ ######################################################################
3
+ # Computes (quickly) the complement of a logic expression #
4
+ ######################################################################
5
+
6
+ begin
7
+ require 'rubygems'
8
+ gem 'logic_tools'
9
+ rescue LoadError
10
+ end
11
+
12
+ load "logic_tools/complement.rb"
@@ -9,9 +9,10 @@ require "logic_tools/traces.rb"
9
9
  module LogicTools
10
10
 
11
11
 
12
-
12
+ #--
13
13
  # Enhances the Cube class with methods for applying the
14
- # Espresso algorithm
14
+ # Espresso algorithm.
15
+ #++
15
16
  class Cube
16
17
 
17
18
  ## Computes the blocking matrix relatively to an +off+ cover.
@@ -530,8 +531,10 @@ module LogicTools
530
531
  end
531
532
 
532
533
 
534
+ #--
533
535
  # Enhances the Cover class with simplifying using the Espresso
534
536
  # algorithm.
537
+ #++
535
538
  class Cover
536
539
 
537
540
  include LogicTools::Traces
@@ -713,8 +716,10 @@ module LogicTools
713
716
  end
714
717
 
715
718
 
719
+ #--
716
720
  # Enhances the Node class with expression simplifying using the
717
721
  # Espresso algorithm.
722
+ #++
718
723
  class Node
719
724
 
720
725
  ## Generates an equivalent but simplified representation of the
@@ -13,7 +13,7 @@ module LogicTools
13
13
 
14
14
 
15
15
  ## Converts the array of variables +var+ to a bit vector according to
16
- # their values
16
+ # their values.
17
17
  def vars2int(vars)
18
18
  res = ""
19
19
  vars.each_with_index do |var,i|
@@ -27,7 +27,7 @@ module LogicTools
27
27
 
28
28
 
29
29
  ##
30
- # Represents a logic implicant
30
+ # Represents a logic implicant.
31
31
  class Implicant
32
32
  include Enumerable
33
33
 
@@ -76,7 +76,7 @@ module LogicTools
76
76
  @bits
77
77
  end
78
78
 
79
- def inspect #:nodoc:
79
+ def inspect # :nodoc:
80
80
  @bits.dup
81
81
  end
82
82
 
@@ -217,35 +217,37 @@ module LogicTools
217
217
  end
218
218
  end
219
219
 
220
- ##
221
- # Describes a pseudo variable associated to an implicant.
222
- #
223
- # Used for the Petrick's method.
224
- class VarImp < Variable
225
- @@base = 0 # The index of the VarImp for building the variable names
226
-
227
- ## The implicant the pseudo variable is associated to.
228
- attr_reader :implicant
229
-
230
- ## Creates a pseudo variable assoctiated to an +implicant+.
231
- def initialize(implicant)
232
- # Create the name of the variable
233
- name = nil
234
- begin
235
- name = "P" + @@base.to_s
236
- @@base += 1
237
- end while Variable.exists?(name)
238
- # Create the variable
239
- super(name)
240
- # Associate it with the implicant
241
- @implicant = implicant
242
- implicant.var = self
243
- end
244
- end
245
-
246
-
247
-
248
- ## Enhances the Node class with expression simplifying.
220
+ # ##
221
+ # # Describes a pseudo variable associated to an implicant.
222
+ # #
223
+ # # Used for the Petrick's method.
224
+ # class VarImp < Variable
225
+ # @@base = 0 # The index of the VarImp for building the variable names
226
+
227
+ # ## The implicant the pseudo variable is associated to.
228
+ # attr_reader :implicant
229
+
230
+ # ## Creates a pseudo variable assoctiated to an +implicant+.
231
+ # def initialize(implicant)
232
+ # # Create the name of the variable
233
+ # name = nil
234
+ # begin
235
+ # name = "P" + @@base.to_s
236
+ # @@base += 1
237
+ # end while Variable.exists?(name)
238
+ # # Create the variable
239
+ # super(name)
240
+ # # Associate it with the implicant
241
+ # @implicant = implicant
242
+ # implicant.var = self
243
+ # end
244
+ # end
245
+
246
+
247
+
248
+ #--
249
+ # Enhances the Node class with expression simplifying.
250
+ #++
249
251
  class Node
250
252
 
251
253
  ## Generates an equivalent but simplified representation of the
@@ -1,3 +1,3 @@
1
1
  module LogicTools
2
- VERSION = "0.3.4"
2
+ VERSION = "0.3.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logic_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lovic Gauthier
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-17 00:00:00.000000000 Z
11
+ date: 2017-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -76,6 +76,7 @@ description: "LogicTools is a set of command-line tools for processing logic exp
76
76
  email:
77
77
  - lovic@ariake-nct.ac.jp
78
78
  executables:
79
+ - complement
79
80
  - is_tautology
80
81
  - simplify_es
81
82
  - simplify_qm
@@ -93,6 +94,7 @@ files:
93
94
  - Rakefile
94
95
  - bin/console
95
96
  - bin/setup
97
+ - exe/complement
96
98
  - exe/is_tautology
97
99
  - exe/simplify_es
98
100
  - exe/simplify_qm