Metropoli BBS
VIEWER: quine.doc MODE: TEXT (LATIN1)
From: vecoven@montefiore.ulg.ac.be (Frederic Vecoven)
Newsgroups: comp.sys.hp48
Subject: QuineMcCluskey
Date: Tue, 31 Oct 1995 11:48:10 MET
Organization: Université de Liège

Some days ago, I promise to post my QuineMcCluskey library.
(I set number 999, I don't know if it is a good one. If you 
want, change it !)

The syntax of the program of the library are

3: "ABCD"                   name of variable
2: [ 0 2 3 4 ]              list of minterms
1: [ 3 1 ]                  n# of minterms, n# of don't care

PRIME will give you the prime implicants of the function
QUINE will attempt to give you a minimal solution. If it can't
      simplify the last table (see QuineMcClusky theory), it 
      should use the Petrick's method, but this is not imple-
      mented yet.

You can also do simultaneous minimization. The syntax is

3: "ABCDE"
2: [ 0 1 4 5 2 3 0 1 5 6 8 3]
1: [ 4 2 5 1]
QUINE

will minimize F1=Sm(0,1,4,5)+Sd(2,3) and F2=Sm(0,1,5,6,7)+Sd(3)

QUINE is 99% ML, and the speed is amazing ! (60 minterms, 4 functions in
less than 2s !)
You are limited to max 20 variables. The max number of minters is limited 
by memory.

In the zip file, you will also find a bool directory. It contains
an old version of Quine (sorry, no time to remove it from the dir)
which can be purged, it is obsolete now. (purge QUINE and QUINE0)

There are user-RPL utilities there :

FCONV    converts a string representing a boolean fonction to HP style,
         and build VRS.

ex: "AB(C+D')" --FCONV--> 'A AND B AND C OR NOT D'
           ^          --> {A B C D} in VRS
           |
           +--- this is alpha-shit-6 actually.

F->SM  converts an HP style function to the list of minterm using VRS.
       (You can rearange VRS if you want, using ->VRS)

ex: "A AND B" (assuming {A B} in VRS) --> {3}

M<-->M    converts a list of minterms to a list of maxterms, and vice-versa.

ex: (still assuming {A B} in VRS)   {3}  --> {0 1 2}

MI->K   list of minterm -> Karnaugh table. The table (up to 6 variables) is
        just drawn (as a string). No groupements are done.

ex: {0 1 2}  ->  "Karnaugh...."

OK. That's all. If you have any other questions,I'll be glad to answer
them if I can. My email is vecoven@montefiore.ulg.ac.be

Also, I'd like to know what you think of these if you use them !!!

Last thing, this is freeware, but if you use it or modify it, I'd
like that you keep my name with it !

Later,
-Fred

[ RETURN TO DIRECTORY ]