From 55da893de9fbc63004cbc652a42dc2524c47d7e4 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Tue, 25 Jun 2013 01:08:14 +0200 Subject: move texinfo files into directory info MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- info/sets.texinfo | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 info/sets.texinfo (limited to 'info/sets.texinfo') diff --git a/info/sets.texinfo b/info/sets.texinfo new file mode 100644 index 0000000..3a0a71a --- /dev/null +++ b/info/sets.texinfo @@ -0,0 +1,208 @@ +\input texinfo @c -*-texinfo-*- + +@c %**start of header +@setfilename sets.info +@settitle sets +@afourpaper +@documentencoding UTF-8 +@documentlanguage en +@finalout +@c %**end of header + + +@c @defindex op +@c @synindex op vr +@c @synindex cp pg + + +@copying +This manual is for @command{sets}. + +Copyright @copyright{} 2013 Mattias Andrée (maandree@@member.fsf.org) + +@quotation +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 or +any later version published by the Free Software Foundation; with no +Invariant Sections, with no Front-Cover Texts, and with no Back-Cover +Texts. A copy of the license is included in the section entitled +``GNU Free Documentation License''. +@end quotation +@end copying + + +@ifnottex +@node Top +@top sets +@insertcopying +@end ifnottex + +@titlepage +@title sets 1 +@subtitle The practical way to do set operations on sets of lines in the shell +@author Mattias Andrée, maandree@@member.fsf.org +@page +@vskip 0pt plus 1filll +@insertcopying +@page +@*@* +@center Or you could just combine @command{diff}, @command{grep}, @command{sed} and @command{sort}… +@end titlepage + +@contents + + +@menu +* Overview:: Overview of @command{sets} +* Invoking:: How to start @command{sets} +* Using:: How to use @command{sets} +* Behind the scenes:: How @command{sets} works +* License of sets:: Summary of the license of the program +* GNU General Public License:: The license of the program +* GNU Free Documentation License:: The license of this manual +* Concept index:: Concept index +@end menu + + + +@node Overview +@chapter Overview +@cindex overview +@cindex description + +@command{sets} is a practical way to do set operations in the shell. +@command{sets} lets you use a normal algebraic expression for way you +want returned and supply the sets via stdin. + + + +@node Invoking +@chapter Invoking +@cindex invoking +@cindex starting +@cindex options +@cindex arguments +@cindex @command{sets} +@cindex @option{-c} +@cindex @option{--copying} +@cindex @option{--copyright} +@cindex @option{-w} +@cindex @option{--warranty} + +@command{sets} can be started with @option{-c}, @option{--copying} or +@option{--copyright} for displaying copyright information, @option{-w} or +@option{--warranty} for displaying a warranty disclaimer. If any other +options is used, help information is displayed. + +To actually use @command{sets} use one argument expressing the formula +you want calculated (and no other arguments.) The expression is written +in normal algebra, meaning the you use operand–operator–operand style +expression. For example, to get the elements in set 1, that does not +exist in set 2 nor set 3, the expression is @code{1 - 2 - 3}. And yes +the sets are numbers from 1 and up in decimal. + +The sets are fetched from stdin. + + +@node Using +@chapter Using +@cindex usage + +To use @command{sets} use one argument expressing the formula you want +calculated (and no other arguments.) The expression is written in normal +algebra, meaning the you use operand–operator–operand style expression. +For example, to get the elements in set 1, that does not exist in set 2 +nor set 3, the expression is @code{1 - 2 - 3}. And yes the sets are numbers +from 1 and up in decimal. Set 0 represents the empty set, and the universe +is represented by @code{U}, and is an union of all sets. + +The supported operators are complement (not), symmetrical difference +(parity/xor), intersection (and), union (or), difference (material +nonimplication/abjunction). If your display is limited run @command{sets --help} +to get this list (it should be complete if you use @command{info}); +the recognised symbols for the operators (and sets) are: + +@table @asis +@item Complement +~ C ∁ ! ¬ +@item Symmetrical difference +^ ⊕ ∆ ⊗ ⊻ +@item Intersection +& * ∧ ⋀ ∩ ⋂ +@item Union +| + ∨ ⋁ ∪ ⋃ +@item Difference +- − \ ↛ +@item Empty set +0 ∅ +@item Universe +U Ω Ω 𝓤 +@end table + +Round brackets are recognised for evaluation order grouping. + +The sets are fetched from stdin, a line in stdin in an element, sets +are seperated by blank lines, and you can have any number of blank +lines, meaning that you cannot have empty sets. But if you want +empty set you should just use an element that you know is a false +element, perhaps a dot. + + +@node Behind the scenes +@chapter Behind the scenes +@cindex behind the scenes +@cindex inner workings + +@command{sets} is written in Python 3 and takes advantages of the +possibility to overrider operators and evalute expressions. @command{sets} +takes the user's formula and do some simple string replacements +and lets Python evaluate the expression this is after the replacements +a full Python instruction. Each line set is represented as an objcet +of a class that overloads a few operators. + + + +@node License of sets +@appendix License of sets +@flushleft +sets – The practical way to do set operations on sets of lines in the shell + +Copyright © 2012, 2013 Mattias Andrée (maandree@@member.fsf.org) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +@end flushleft + +@node GNU General Public License +@appendix GNU General Public License +@include gpl.texinfo + +@node GNU Free Documentation License +@appendix GNU Free Documentation License +@include fdl.texinfo + +@node Concept index +@appendix Concept index +@printindex cp + +@c @node Concept and program index +@c @appendix Concept and program index +@c @printindex pg + +@c @node Variable and option index +@c @appendix Variable and option index +@c @printindex vr + + +@bye + -- cgit v1.2.3-70-g09d2