From 4e56ed50c07acdf6228dcaace229529862eb4d59 Mon Sep 17 00:00:00 2001 From: maplesod Date: Fri, 7 Jun 2013 12:40:51 +0100 Subject: [PATCH] Initial commit of Kat... doesn't work yet. --- .gitignore | 12 + AUTHORS | 3 + COPYING | 223 ++ ChangeLog | 0 Makefile.am | 19 + NEWS | 0 README | 0 autogen.sh | 7 + clean.sh | 6 + configure.ac | 6 + lib/libjellyfish-1.1.a | Bin 0 -> 2450740 bytes lib/libjellyfish-1.1.lai | 41 + lib/libjellyfish-1.1.so.1.0.1 | Bin 0 -> 1145207 bytes lib/libz.a | Bin 0 -> 128870 bytes lib/libz.so.1.2.8 | Bin 0 -> 101138 bytes src/.deps/.gitignore | 3 + src/.gitignore | 3 + src/inc/gnuplot/gnuplot_i.hpp | 1992 ++++++++++++++++++ src/inc/jellyfish/aligned_values_array.hpp | 141 ++ src/inc/jellyfish/allocators_mmap.hpp | 64 + src/inc/jellyfish/atomic_gcc.hpp | 68 + src/inc/jellyfish/capped_integer.hpp | 64 + src/inc/jellyfish/circular_buffer.hpp | 68 + src/inc/jellyfish/compacted_dumper.hpp | 171 ++ src/inc/jellyfish/compacted_hash.hpp | 530 +++++ src/inc/jellyfish/concurrent_queues.hpp | 161 ++ src/inc/jellyfish/counter.hpp | 52 + src/inc/jellyfish/dbg.hpp | 153 ++ src/inc/jellyfish/direct_indexing_array.hpp | 151 ++ src/inc/jellyfish/direct_sorted_dumper.hpp | 131 ++ src/inc/jellyfish/divisor.hpp | 135 ++ src/inc/jellyfish/dna_codes.hpp | 20 + src/inc/jellyfish/double_fifo_input.hpp | 192 ++ src/inc/jellyfish/dumper.hpp | 74 + src/inc/jellyfish/err.hpp | 120 ++ src/inc/jellyfish/fastq_dumper.hpp | 131 ++ src/inc/jellyfish/file_parser.hpp | 92 + src/inc/jellyfish/floats.hpp | 71 + src/inc/jellyfish/fstream_default.hpp | 68 + src/inc/jellyfish/hash.hpp | 253 +++ src/inc/jellyfish/heap.hpp | 125 ++ src/inc/jellyfish/invertible_hash_array.hpp | 1015 +++++++++ src/inc/jellyfish/locks_pthread.hpp | 172 ++ src/inc/jellyfish/mapped_file.hpp | 181 ++ src/inc/jellyfish/mer_counting.hpp | 68 + src/inc/jellyfish/misc.hpp | 144 ++ src/inc/jellyfish/offsets_key_value.hpp | 239 +++ src/inc/jellyfish/parse_dna.hpp | 194 ++ src/inc/jellyfish/parse_quake.hpp | 152 ++ src/inc/jellyfish/parse_qual_dna.hpp | 147 ++ src/inc/jellyfish/raw_dumper.hpp | 244 +++ src/inc/jellyfish/seq_qual_parser.hpp | 66 + src/inc/jellyfish/sequence_parser.hpp | 71 + src/inc/jellyfish/simple_circular_buffer.hpp | 134 ++ src/inc/jellyfish/simple_growing_array.hpp | 60 + src/inc/jellyfish/sorted_dumper.hpp | 166 ++ src/inc/jellyfish/square_binary_matrix.hpp | 203 ++ src/inc/jellyfish/storage.hpp | 37 + src/inc/jellyfish/thread_exec.hpp | 51 + src/inc/jellyfish/time.hpp | 92 + src/inc/jellyfish/token_ring.hpp | 97 + src/inc/kseq/kseq.h | 223 ++ src/inc/zlib/zconf.h | 511 +++++ src/inc/zlib/zlib.h | 1768 ++++++++++++++++ src/kat.cc | 34 + src/kat_args.hpp | 156 ++ src/sect/.deps/.gitignore | 2 + src/sect/.gitignore | 2 + src/sect/sect.hpp | 193 ++ src/sect/sect_args.hpp | 188 ++ src/sect/sect_main.cc | 156 ++ 71 files changed, 12116 insertions(+) create mode 100644 .gitignore create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 ChangeLog create mode 100644 Makefile.am create mode 100644 NEWS create mode 100644 README create mode 100644 autogen.sh create mode 100644 clean.sh create mode 100644 configure.ac create mode 100644 lib/libjellyfish-1.1.a create mode 100644 lib/libjellyfish-1.1.lai create mode 100644 lib/libjellyfish-1.1.so.1.0.1 create mode 100644 lib/libz.a create mode 100644 lib/libz.so.1.2.8 create mode 100644 src/.deps/.gitignore create mode 100644 src/.gitignore create mode 100644 src/inc/gnuplot/gnuplot_i.hpp create mode 100644 src/inc/jellyfish/aligned_values_array.hpp create mode 100644 src/inc/jellyfish/allocators_mmap.hpp create mode 100644 src/inc/jellyfish/atomic_gcc.hpp create mode 100644 src/inc/jellyfish/capped_integer.hpp create mode 100644 src/inc/jellyfish/circular_buffer.hpp create mode 100644 src/inc/jellyfish/compacted_dumper.hpp create mode 100644 src/inc/jellyfish/compacted_hash.hpp create mode 100644 src/inc/jellyfish/concurrent_queues.hpp create mode 100644 src/inc/jellyfish/counter.hpp create mode 100644 src/inc/jellyfish/dbg.hpp create mode 100644 src/inc/jellyfish/direct_indexing_array.hpp create mode 100644 src/inc/jellyfish/direct_sorted_dumper.hpp create mode 100644 src/inc/jellyfish/divisor.hpp create mode 100644 src/inc/jellyfish/dna_codes.hpp create mode 100644 src/inc/jellyfish/double_fifo_input.hpp create mode 100644 src/inc/jellyfish/dumper.hpp create mode 100644 src/inc/jellyfish/err.hpp create mode 100644 src/inc/jellyfish/fastq_dumper.hpp create mode 100644 src/inc/jellyfish/file_parser.hpp create mode 100644 src/inc/jellyfish/floats.hpp create mode 100644 src/inc/jellyfish/fstream_default.hpp create mode 100644 src/inc/jellyfish/hash.hpp create mode 100644 src/inc/jellyfish/heap.hpp create mode 100644 src/inc/jellyfish/invertible_hash_array.hpp create mode 100644 src/inc/jellyfish/locks_pthread.hpp create mode 100644 src/inc/jellyfish/mapped_file.hpp create mode 100644 src/inc/jellyfish/mer_counting.hpp create mode 100644 src/inc/jellyfish/misc.hpp create mode 100644 src/inc/jellyfish/offsets_key_value.hpp create mode 100644 src/inc/jellyfish/parse_dna.hpp create mode 100644 src/inc/jellyfish/parse_quake.hpp create mode 100644 src/inc/jellyfish/parse_qual_dna.hpp create mode 100644 src/inc/jellyfish/raw_dumper.hpp create mode 100644 src/inc/jellyfish/seq_qual_parser.hpp create mode 100644 src/inc/jellyfish/sequence_parser.hpp create mode 100644 src/inc/jellyfish/simple_circular_buffer.hpp create mode 100644 src/inc/jellyfish/simple_growing_array.hpp create mode 100644 src/inc/jellyfish/sorted_dumper.hpp create mode 100644 src/inc/jellyfish/square_binary_matrix.hpp create mode 100644 src/inc/jellyfish/storage.hpp create mode 100644 src/inc/jellyfish/thread_exec.hpp create mode 100644 src/inc/jellyfish/time.hpp create mode 100644 src/inc/jellyfish/token_ring.hpp create mode 100644 src/inc/kseq/kseq.h create mode 100644 src/inc/zlib/zconf.h create mode 100644 src/inc/zlib/zlib.h create mode 100644 src/kat.cc create mode 100644 src/kat_args.hpp create mode 100644 src/sect/.deps/.gitignore create mode 100644 src/sect/.gitignore create mode 100644 src/sect/sect.hpp create mode 100644 src/sect/sect_args.hpp create mode 100644 src/sect/sect_main.cc diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..33b5f782 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +/$(top_builddir)/ +/autom4te.cache/ +/INSTALL +/Makefile +/Makefile.in +/aclocal.m4 +/config.log +/config.status +/configure +/depcomp +/install-sh +/missing diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000..aff867d7 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,3 @@ +Daniel Mapleson +Bernardo Clavijo + diff --git a/COPYING b/COPYING new file mode 100644 index 00000000..e4ccb627 --- /dev/null +++ b/COPYING @@ -0,0 +1,223 @@ +GNU GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright © 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + +Preamble + +The GNU General Public License is a free, copyleft license for software and other kinds of works. + +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. + +For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. + +Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. + +Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and modification follow. + +TERMS AND CONDITIONS + +0. Definitions. +“This License” refers to version 3 of the GNU General Public License. + +“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. + +“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. + +To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. + +A “covered work” means either the unmodified Program or a work based on the Program. + +To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. + +To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. + +1. Source Code. +The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. + +A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. + +The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. + +The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. + +2. Basic Permissions. +All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. +No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. + +When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. + +4. Conveying Verbatim Copies. +You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. +You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: + +a) The work must carry prominent notices stating that you modified it, and giving a relevant date. +b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. +c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. +d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. +A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. + +6. Conveying Non-Source Forms. +You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: + +a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. +b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. +c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. +d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. +e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. +A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. + +A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. + +“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. + +If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). + +The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. + +7. Additional Terms. +“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: + +a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or +b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or +c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or +d) Limiting the use for publicity purposes of names of licensors or authors of the material; or +e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or +f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. +All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. + +8. Termination. +You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. + +9. Acceptance Not Required for Having Copies. +You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipients. +Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. + +An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. + +11. Patents. +A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. + +A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. + +In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. + +A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. +If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. + +13. Use with the GNU Affero General Public License. +Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. + +14. Revised Versions of this License. +The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. + +Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. + +15. Disclaimer of Warranty. +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability. +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. +If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 . +Also add information on how to contact you by electronic and paper mail. + +If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. +The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”. + +You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . + +The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 00000000..e69de29b diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 00000000..5e136654 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,19 @@ +AUTOMAKE_OPTIONS = subdir-objects +ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} +EXTRA_DIST = README COPYING AUTHORS NEWS + +AM_LDFLAGS = -pthread +AM_CPPFLAGS = -Wall -Wno-sign-compare -Wnon-virtual-dtor -I$(top_srcdir)/src/inc +AM_CXXFLAGS = -g -O3 + + +bin_PROGRAMS = $(top_builddir)/bin/kat + +__top_builddir__bin_kat_SOURCES = src/sect/sect.hpp src/sect/sect_main.cc \ + src/kat.cc + +__top_builddir__bin_kat_LDADD = lib/libjellyfish-1.1.a lib/libz.a + + +dist_noinst_SCRIPTS = autogen.sh + diff --git a/NEWS b/NEWS new file mode 100644 index 00000000..e69de29b diff --git a/README b/README new file mode 100644 index 00000000..e69de29b diff --git a/autogen.sh b/autogen.sh new file mode 100644 index 00000000..eb24e309 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,7 @@ +#!/bin/sh -e + +test -n "$srcdir" || srcdir=`dirname "$0"` +test -n "$srcdir" || srcdir=. +autoreconf --force --install --verbose "$srcdir" +test -n "$NOCONFIGURE" || "$srcdir/configure" "$@" + diff --git a/clean.sh b/clean.sh new file mode 100644 index 00000000..d94e794a --- /dev/null +++ b/clean.sh @@ -0,0 +1,6 @@ +#!/bin/sh -e + +rm -r -f autom4te.cache autoscan.* Makefile.in aclocal.m4 configure depcomp INSTALL install-sh missing config.* *.scan stamp-h1 */*.o + + + diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..c3fcd308 --- /dev/null +++ b/configure.ac @@ -0,0 +1,6 @@ +AC_INIT([Kmer Analysis Toolkit (KAT)], [0.1], [daniel.mapleson@tgac.ac.uk], [kat], [http://www.tgac.ac.uk]) +AM_INIT_AUTOMAKE([1.11 -Wall no-define]) +AC_PROG_CXX +AC_PROG_CC +AC_PROG_INSTALL +AC_OUTPUT(Makefile) diff --git a/lib/libjellyfish-1.1.a b/lib/libjellyfish-1.1.a new file mode 100644 index 0000000000000000000000000000000000000000..55efd95af14887c421b08e3c54f97e7f68b2cde2 GIT binary patch literal 2450740 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�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 >geK1 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

m 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 z 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�K)k%H7~t~J<<61#$GNz> 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 z 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

l0YJ_-jitc}ZB(O}-h}pd$qujlq0gBNulz1} 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


Gqduvo?6-_FoF+DGc>3OZx^RhOTM<1kr4?$6 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
4X}w(h@5x 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 literal 0 HcmV?d00001 diff --git a/lib/libz.a b/lib/libz.a new file mode 100644 index 0000000000000000000000000000000000000000..5bd12c499d87e87e91c01ed8a38bfcc9ddf82e2c GIT binary patch literal 128870 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%0Dkls}sakn4-}S(lPcH8c9$ORKCw{F& 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 literal 0 HcmV?d00001 diff --git a/lib/libz.so.1.2.8 b/lib/libz.so.1.2.8 new file mode 100644 index 0000000000000000000000000000000000000000..4df143dd06a0d99be85b2fab8cab9ca53f11697a GIT binary patch literal 101138 zcmd>ne|%Hb`G3-;G(hDBWm-0rqG1w6ZKY}>=yK@|y@6D#6l9801PV-q+NKl%wdE$z zvum^}PTkzb+%Kn_;&cVkX+weXL$RfbApR&gA(sji(Na+8_x+r6lcu$G`~3Y)U+F#P zx#!1op7Z=V&pG$zA+LWzlGSR7eUdFVS}2z>LO?v`jm%kHWjvM~ORB|VxybSpUN*%n z)7z!6K-7y}(K0Va(0=%~Oc(cCrjOw8*fqm!G&A0K2EU(#|5VR$m#F8sOVo>9*9x#D zcD3_b7K;s6`ffGv_q;mIacheM0`l+h7=KKES-0{cG$-nP^rU z@wFt+8b%KT^EFAH)rMmsL7-e0N9 zHRsK7&fQcs)pDgHsnX)0wua*SV|<6geUqZrlCb$&2rO<;bx0i>91>LEZDFw%BU@WaUj+t6#aZW#*un zm)$?`%!FMd*AAai_lxQ;UOI2|;`?@8@f*8tFMYmw^r>AI>qG9~hyAl}S<{Mpw`^yB zeH`_Ve0ABT6E~&3a-`tW&o}>d`%M=wsZz8-sjoC3y-`iFuKQsBar<8u{BG1H;1u{| zJY9eH@8bt2ee%_=M)&!i3uYH}9MAa2h^u~kUz>gY;*6yYg}a8`r(7Gp=FVF$`P+@s zG>eq~``xo_%eNL+Z$2x%vgScu8va1XefPaI%WKd5&hobRx}8@&uqhIVfzDMcz%Af!E!LFA+NV58$yyc3= z!gDib*=MgDine~}lWZAa$+)O{iBnJ*=XMA2+)I7HYm$2}f1nTeSADc|5Q5oTzxF=b z`4zD0t^A%o+HdTmoxk@12RfDvKJxDW9!0jde*fA>zock-D?hrAeuty|jP70X+~7XS z|Dg}K1GO&hrJY}LI;UA0my4S(n`N?iJ870R9|{2J0Q!&)IoFbAsUf9=&$r@Yc?eg6 zSCWFlCq-N=F0&nn+0G*-{2kC?u;qBCnT=ocKHxr1&ooQjpG47^j+1Xn zZ^B!?5P%pyPxsOOpZkFS6V+*4Z6481gSc20n(fz^{l?ngZQ|LoOBB4sEWga8bIW}K z5W~MXHm<)4_z1In$ZX&9u>g?1q))Bc&YA~Beh~8XA$`r~g$xBgv3a?`Y(Mi40{))3 zSfXb8C2a!GYQmp4+pl{-0Ct=39cDWj=D6N4;UAjq6d3|Q_J%$V(39{fI3e;RC-fm3 z#pyYMXDz=*efkht2wu{IfBb#S3!zQr9l2E7V)>1@Sk5=`&+rPs5lLM8oA5TX{7B^K zGt|Vt%^c`C0&Ka?EMIV&0Q}g*^WP>NEG8Xd>hkA(;5j;0{yEVO*<|`0Gy5$%F7ngG z#qy|GzNJwB`kC+w6W(U>N!-?&c-EPKvu1g@4}8e)A-Y*id5n$s_86Xj77eUNo<7BW zwDW@5PR8e=T((*M46@Yz+FSv@R$MHfns{bb3c#QYas6i>?Z0Z`li4K7y(TV}xBDo6 zk=eduiYPb{dHVdugjbsU9K+{bv;8)+{ehymWdzzM{0qJofXybn#T@V2qXIy3NS}5S zUT4l@$b=6y+i5ZRKj!;vGVxhU3KJibJuRAvPop{SF@LtsY`^UbQT{oz{d@c!k;i8dLAZ z=y}o{muHPAZ;Fj&vvrie2Yn+m|i0FLU>l11!MfV%`CshoY;S%UH+LdWA43+7S1RO z%q$Jem|>YQW7d+HGm7UgoVj5B(m9qH6Bp08blS>{uptEtpw4^WL&p&f8VMw{U*o>KU;cl#6F_7hxRp z7xDp&pE>IuaWessc$1nmZ*`3;5zy`K)v=t}y;-nZ4+VUH<{iu`=6BXTGiJ@ZXGZbN z`3qtVB=notjmT!j?vyuyC~49*R_gwRvtlhyM!I0p{DpxSAdwDJ7Gg&3C0;RW=Fcp> z$Fg+6{JW>lDJ{eN@^tQ^drRgom@{F)%(-QjrQXugMWvQ|XD(QB)&KM!2(`|64XR-F_={}%9DW2 zSyW8_`REAUIWtR<0b2OKaM28mb|!H=p&Khy3XVn{NYyO!G6UE0g0%5kEgNb!R5vU#`y^%5Zfn5bD-mMyyS zS_@K3DV1fp-R~PeBkRhmugpwHUU_w5CZ{Wt0KfXmF$wT1v%4~567P)Ze&?F5V%H@0 zeobPR*Wpec@XDQW^_5xK@nl!(>MO5_L#YG$41$dpe~x&Hto~r+=pOk1^p}R!cM9T4 zR?9j3{{TSx14eMGB?+)(THS}S(0>T>!|=ThHj_SN3J9;dFD|vm z?vY`G!88_MJ)lp#Nx%1~MQP&+9ov(fB>+998n%1~MQ zP?>%xGv?i{zQ{kIGE|m6R3;T=vJ=XX?WZzSmOfO*PVMaMYKPXVREEmZhsqG`vlGhD znv=>6* zoI~ww6zve~9kUFTjeV@(oGXxbn1I!f{R&Hu!Ir%yY{>liSSmOy|1tCBKc3&8IQOWT z4-BRJAj@gw=`-ri5&TNH&}Yp!an0!g&omu8wGa5TKH&3u!0WCS?JwyAUfl=$=|14k z_W@tu2fVHay!2Y4JmTd&;44gcV-NU$O!%H2@URJQ=>dP*ghzY8f0iTqZR-L5vsu2Q z2mEytZZY=(V)M1dgxh<-V|X^s=sv%(@mJ354v*#6^nhD31)k6MfLCS;rU-HPs06q-p`FYGxVaSIcXJZpcO;beB)}&pz|{nJY;8cd z3liYxCzPL-0FT8c=yp*8oM;sL%u9gBc#H0pB*0^9V}dV9fM*lH{8T2up=jct>IC?J zIMiaPNr2BzfIpo8zb*m3CIKFc1<>v16X1xN#6N2j;J!H2Vp*R6r!{))QVz8X^Yk<;Q5az|6|H~czzesHm>QQoSCUzZ>ZYSk&)5c9J-b;G-xuR3Qx{A*Pje@Z=h zfMBjhwJEAvH>#1tlFFJ?)~H7I+tf&lLv?Lct&Kicoevp*{|1$H)K{H;8BDLf9cxHh zc|TzoUbz-vxyqmm@F85RO;YVtDB(gGX?USDUjbxf&69)_bN3kO+=JlYm3NW`aWcllBEtr*|&Njunc(p2^#=ifsn z|8^uy+QFWarn23<@IkY1n_%{?DKe&E+91*-{~>Tg(|T}Ar&Jv!0SCKmICS8tl_iy_ zm5Q{kK|OgGFr;>?k&d6Kk)sYZa?DY6kR-Y45dBxJCoutPwm4zD8C2@LUt3!no|)1Aes zzHrSTt`m;YP4$KYomMD=+y*sV&6)594wiBwTmkfNJW>Du`}nznR;#|O;hGq1&>=n2 zfb{Db+WI5@aL`$e4A;*pd)Qe`yb*rbS%WL-W#(43h+VaI`rVQ8WA>vxVhtqw$E2!SgI#Sh%8%W|l(cFen(|ehvY^BAe;13!guR)l z`_rn;#)d%)IIBfJy|feL9Va%m5iLo>D}j!s2VO&Cc=ggw4}3PaZ?pz3A!B@z8umM@ zvpUJXJ&$3iV+0MFqUCL%9ys6EbV>?Rf513Kk3t)&K+FOc^6Dl&)M!@&hs%#mWN+Gt za6YXLr0C$J*eDZvmr~ys6Yc3fbq~4irGG!$t~Q;PLaC(sv)a_EO*FIh#q_x{Mt?P& z^7=b~#`05Wp4uk|fMA2-{0uKMT92l#H&v_VyTOD2X`HhQB1(wwjIcAq? z>&A?$(hgh8KW7~$8}GOiZF^wjhf6EpMRQ8{))us*pdBA0m7XG0dWt{n@0U>{kI4b) zWcIC8`>{u=ZHOF8*Mn6E(^Em7>^X4-|Gfv(&s|0xg0(tY@5h+CeJQ*?Vz;M{H6xcEC zbn@ca;ql*LLd&-E35`UPSiL_y{dYFO@3KxDY|HAP4kLbaNK9xfMqMr^#!tS5sq5ljV<7S|XBt=eHbr0cESK1Qe*Lxr{n6)ob(_i>E;x*&SUxz#D$LANX8$?eot<>6ib6(l>`69*_iJ zu2efcwbQT9Ez%eH{mk#|sGjaT3Fxp?nKjBF-q=UqM0r5lWhuAO>ptq0^1f-k7=sJ~ zZn2CwDog9K1G4*sq!pk=5JL*)A;FIOXVv+wO%tTrG^=vG-`QT?jI?6yRIXQ?C(F0U zQtj}Zq2+JkI>Vatb8Go)KCK}MN;`=uPB>Ds)fb*&m2>i}Qpk=50Z9TR36LZy)Q-LZ zNd_btkYp+J9|5reVgtk`h3H5R%A^320!WG!suPfYfb;{TpA>pYKwzF{qymyEg^1W> zI)Dvy$51(Ec=94%Mg@>527ky?h9k5`{GO|eE5*D2R=c<0(w;P2PRc=ZSE-cY9$?1%V7)-J_; zO4XMY=o+;ytr&_zsJxHQJqvqjLc(W-pL&x+w5dNa3=4PJ+MuvE_z1$b3#jDERp>B=DG<;rkyrHG<*wbV z4KkdT3NcjJq!OvtmMS;zSF*M$BkEXgNpTJATD}s#DXF=|uTP#QvlGfCclg1i#FmmM z2R(qIH;2aN6~7gqgrgJC#)NvRu`ff`Ln`z5))ao~(Q9 zp*kr@+^6R%eE!J3gtkecjVR~M>NG}@^BP;9f`EQ@00f#C&b~By?=f)HAmiTZA4^+kd&=nJ#K7#OZz30|Qu%7z>2XaE*l#zcC7Pr0TiT zRChz!c>P71DE$e}Mb-~g_pvfXbw%YjNd#1OOuc~;erZCBn!Kzat6gCS{MIj`UmT(3 z-;2B{ZPO^?a+AGd;|V{>TX26^_NnSRqq;iOs?7qjS(WmlqBV9n`WtG=+IveFpHF|V zNYw*QyTVRKhaW{*P}IjJ6d5ZppyHau`^2`<9bYDtxeH}bQD*PCwi^y)YE(Ae*`l%q z&M4%~&t^N@{K#~W13Js zIm5t+vHDtM%7*I86xUZ($H)M=PfIJWMO;&i7qTR+{5^pq(u${W)iq)vMc0X+G$UEj zpZE?@Jyn0z!gWHV_;TKj!gk59`B6+i*M+Jbe@-W z_L8#YtN}B?%0TGs`-u2h#{RTeVNQ^{AEZ9COSE79Jo@&!KWfmP1|sxHq&^`hh0cYR zS9P6~2HTj`uDZ5kfwQC^+o>j(6=ZEw*=Nz4pNP>})yJw#qq5P{mW^=gVQpy>O%YOxKnzv4h$G8)}7mINkTKQCa8h#+-4gjWS)eXb6c0Z7};Q= zJ`j7IkSCtHsyEyQ2;8(K8P=h7T3xd78Hg75e|!30=?u0;=iUp~>!!D`^5dTBm)wyb zRKZZcF#6-6enai10uBs;i@};)$FJZDH6pG2gqr32!2P6Jj6~OILW;%oYtdv_Y|@}? zrxvjmvmq78lW0N&t8Le*;cEt*Abzc5yc!s{A5l+e%c|3)E`QF|Wy%36w{90oIMk=T zS-avIQ`bnOp}9dlix@iO*Bz0i)f*Mpdy23H!lRQ`=|EBIgz{fOxN?!#Coh-7_rcH> zI@A36Jw@zQYDv*&`Qby_RQ(?KZM*c`5_m~*-w!uh`ytLl%am{d%t2jpbBlHqt{Q2> zJYbnDv)$ei2bHWkWkh4BU1sDE-V|26SWm9Yfs41i+yWoZA$lvXRg(Qqo1y~;g>ik) z=g&(kz3aGY~UW*NU#f34llVIiv#t4Q*3;H;+dlHJBUI zsh}-%DqQ0Kn@$y!$21TDxPqk#(2jvN5v!oSIWXf=?vPfZoJC3I<*9q2A~=w3H;c+) zA1QbTn@qm7-Lzi^vKrwdfSkrBpp5WeAU-80NOi!?5n9@@jsvSvDt3WG|P|A%8|4M)2Pnb#C$y&J| ziDcoR3&q^PJr|m2MEp`LH>=k5n#L(tm(R$Ey3_fy$$A*uLXrX za3%sX#H5&1(I+Wvw`)t4!FAV8X~oY;BfH2|>9UBT>A(K67dov-Xj%#lL*+z2h4`e6 z^9hX`Lc6*S<||MV#AJ73vSsZ%TLU*+H15Eh7;4;K;?_%bZ-4M*cuj;)55MVx-thSf z+)m6OY!;ZoSO}b`zemxZF$0-cC%u}(xYc=`^)lMkqV+DTGZ^iWzBAYRGJ79eobdE% z;SqwEfZe6wa8lKwc2%E|BL&apnSD~QKN*Q!EWRnS;*f%;NCneM{6SK|+~Hmilsid7 zO`vx_(*V*Jen@SXwb<0r+QtEQ-F-_bZW9k%ZKv2o|3Wd83d7E_n{~nn~A&ylI?lUU3&o zRNV{Kvn;=+Jg32HzYj&Sc4f6^bw(eYn3DfB8Ts`?!{S?!<^QCGFrq2p%*Un0C|aN=+lkn#LD#PqW%vv3~doN~%`(3X<3pYmuRd z%@c3(M1f6O=jq3us6&ov%# z#TeNMC=H;7h;dFn)N8p9yp^#YYZV*}*_h;WuXd8JSz0K+MNC2ZN?+}yE)@0+*Rp?uejaBXc9 zeh0=kQq}V?K5Rm zzdv&Woo=Fu_!Q!lZV3#~Z_5C+K(TZE`pu*AF*8FD%@gCH*hb~@!JU@!uW=Jp-WIrk z-wdJ=Vv4T&`a_C8JTWQM>65%o)Ooq4-M>VVLif{rur`$)$9DKoj4Mrz7=!%adO8zA z+wF1uwAYEj`53eV-=XyZ#xb1H$9K; zMn(<6^t_8is9mbwOaL0Z6nts`C4YugB~oOU^<29wJqbajofk#V=e~0A0u7RPgA`!IYFY};L7QEgAoYR~U?d!R_>2U(voOhy z(qZ*1{OeGiM_Rq5|5w^6cv`;)0zs@7=w$(lekZ&{_`v0<4Y?kW6cR#eEgt9;ep(iy zS>L7PhO?b$EH|8XZFtBo*KUHIO_6@Pk#bG$ozkP!f;R}Qd>yr&UovCS14UmPaHeY(~PSQaF) z?X1g(yI+WzMI@2?one^Sw6B4+d_^AeFT3{ zK)KqWid-zprzJ2`mrBGs!Hg3Tl|I2*K+GZKE<}zP5mZ}>q$vTRen__tsNsGftp`yg zc%-;S3QeKflSi*b@KJh1MTWvY!A*9W+bKnQF5=u}IAU|yfsKd{vAgN19yf?UVbxka zWRSFON>Nx%B0!J3$=G&90fq)Jrq`nAC3keF?!gq8_}tOh%^5{l*1>V_At-{cQKypX zcsZN4V@@F1h6}4oeqUQQ8d&}dSn8A1th&hlv?{~01kx;mWYQz_0t|2maajMzhLB^t z9S3`WWkW9aNwlq)>`uwMm2EwFz}3`bShwSJ7i)~Pq_`Tx1;c?J`;bMxH(s&a4#S{N z9tBmMtLphhfn5b86Oj4EGd$8Y=D+6$gSn4{#+Vs!PGw zV5-2@!FB9w+JqnZEA5+10w_an; zuf7aq_KYHLfOTjMRt(W*VFX;}2-a2GB%*$B5U``!z?rwPlhVt#BM^nj-6ke?ED)o~ zb$uZw_c)b-fq@$3b-rr-wf+S8!W2b#qz;m%olaTnkskRMPxf0|xuFhsCGSS#kAMie zV?HM&DeeX-v=kyrxn!POfE>;gCf^i(cqq+u>w<*x{_s?)Q(nx=BS&@0r%}#^oQ-l5 zDThNjQ&T86j&l8w>qogODVK^|D&;cJj~x(x>wLd^XW3x7Z^eBp?gt+Bv)w+|afO{# zTsz%cMEp-$c_Elu#Fy9>!9C%rXG{i)^A67JnFemiARPMG`3c5fyG!hGfXN06P7=}6 z@mlazzNM6~=b=AQ1Cp7nu{zSl46a5IqUph3!8K68eT0>S30rnQwMXoeVAH35PPI&% z9{LMr$5?<+B;*bI(KNY=?g1mz2}T$Q*5cdz$4CTC-EfB#TH8*oaCMUd4txU41P&a- z^{wE)od3dqM>$$u{HHHbV41m2`T%_q_q_;dA=P4X-`|NTiDSQNHDh{xj6NPdSqd#5 zGxgX|c%mA8MyH@v5P*kI;F??GaTEv@d4R?gjE(f3qThxi4)EE^co;6_9f|u@8QiY| z&vqJKl@X%-yI@SS+N0?}1ZsnD zF|C<#7Qr$;Pcgs|4)BmtnF~C4x06S;2D@|(JzZvkjR6?BsnulKh`Ne!ATHkx`4n#89`laB3t_^EkEj58f6g02Z_ygq`GI8$H$8gUP9Z>mtZ{ z*bWmcAl!u^Hzy9kP6~H?(mABu5iWoopX4wbf&YWW4=-Rg0!Tj-Vm1OuDnW3B5-n3Z zm_XwQ7|gW!H@zcf63xEF-8G(#G!nguuxPs9Z>yMvLxa0_SYeO7IFfUa~;~* z{(*B%5AAgbzD0WE8~m@v$Owi0G**4_kT?dV18BJ9`~*f}y+XIEZCL`1fkapU1#00^ zJa59O!&OfCLtT9CMGwXX&^&=5cW*ZtcrsLF0{pEQ{1Y&pb{6}}2f(7n@3}6mL_=Um znIAzm`k`h#^9+iUEAU7u`f~HYbuL#L>?@oBjLt=~T0)6QC@-$f$(lZ-RO z$nd1L*fJrIH1RgfwwX-nO7`nYrc$y`632FmIf)+}PUNLl`(v?>ddctVs9jg9k*e;EKr%5N05wokiI2uc(W;lvdH(%iuFdha(IgveNC-Hm)%q zs?fv40C?hOLn<`vEIQ_Hb3aKdZ=W8p*#nCy?)MO0sSsKTn0rUyXY99BL!GrxjeL#= zCO*bNL%%bLg(6+ME{^Bp@kvh3ooJted5FbH!3Z+?FYMYGZ~6VIUJ8P@2f)?K3OXmNSbD>? zE1lO1tf&`Q!S`Xy3h>wkTFR=^&fKS(;(%R?u;Mu*7F<|DdMw(R%K|I3Gl-^85J@}Z zlY%8Yai0{N%M*yN+=WEd8B)}Ic<^ljXnmdPb3p4$Ag-{7@@-!B9vxBivdwa#%-%7N zCxN5VDRN$*`<>Ic273<8X{So0&@)I>=445s8YDQGuA>A+q7iJ)1eM^7jN_nX6p^O= zY3)qsdYV~DiPB29`Wx^b7U&Z95~N3WQ#S0y6xyX#2Iot=6lyUGnfJBtQl&@Up_^y= zOOMtg!J;NB)4sZ_b=ssy|BjTxI!yTQIQ%<1xp@{GpM~40w9u3lZ^*phE!?zpPWE7Q zKDd;)D+SL`1+m@4a&wqET47rhwqIrGIDFOM;e*2#ipolq@Ptk|oS(Yk#TQ<9ftr-r z1i!-SWOmaM+6kEuU=a+dKc3k+c>uuWO^0Rnt4egK(8x(JmUBL4=_XcJn z7zHTeup+<|+SNgS{Wg#uM!|W$hLv>_dCP=xcyOZ; z3e?9Qp?I>7t)wFhVAF(sbE9fA&ezD$Os^yv!?|@=Q2FG?S=;!NnF;<%_llg)RSmp@ zhYf~RpxuVN0`v=aG|wZ2UV%^16Q~7Rv^LM8Dhw zV}NnT;ye7TZ&%H;3AA|=LBg*WQ(zvePJ-(FR0cyl0lPnWQ2G<#ROG=7O~7_l z9;9yqyxhDDTw#gwM&Sy)^D=QoR1pDneS!y9kE%~qRdyRx(1Qgkd!PXMX)2pC4c8)E zi*TLCSsj^qV0*AfBUoO=asJ>`V9{QW2ROZGvcb;|uBZD_h~&}J-hgx5Uy2k?YrlXL zi)8JJ7|GAuPN;vDLY06#k22Hfic{boTy-2T)gKV7i?DF#6i;_ZZUF~@zvG2+ivXfL zW@R2{ZxM^+&}9Wawi!2sd3yvsfHR0|HIXE)T|!CX+C_xGWCaGxSzz52U0YAy8i`jC zfr@ZGH~K7x@%SIXu+_9HTFqe~_%a8<9MK8@pwTfMjlN{Xnc=&fpUTe75JzdS3JBXg z5Dz>X8s-O?d|`jS1#25F1x!;ZnjYro6;-B_gkUeSNC5v%;dQ1hL5^%$EaV*HAA||c zueM!ayv7B_gB_@}^NU&91&I77fyTjS0dM`Ni~sfWpHE^JaH>hc3cC5OSpS``MQvDU z+Zd`g*o^UJdpOjNgXZC7IItXWTC0=SUj^(E z6A+!hAfcU=q(^_t6R-oT=~kl22~6QCBe0Nb&bFUeED8EO@X!XZ1~#j}Njc328azWR zmB`M^WChuNR^(~$jKgh9gC~bB-OeqTdT2E~#Y8<+{r|MjOg~HnVu26AZ27U>n@`)l zrO2pyD&lLVk(C>~cx4f&*Wk5LSGaQYxo|7al0dRP!|v0)9$z?IKp_PEf$R-bA?t`Y z>p#>F?&O!yg8-v^;gAFCU;;u66{o5l9;lr@cQLe1p|gY!%E!)^*A6~zFHxHhpa-Az zecosD0rV(3^M!{z{=Lo)ODjv!8Focp!Xrqi%|4SmKO~*B2X0S3*06+r>ti+AnRBF7 zwoDVE&LKK^xeO)3{y?( z5`Bsdn<(?NGgy=j0&9K0)Bk0>s7&_r2l^W*`olgn7-$$6NQ`#_B{67Y40sRtD6Z2! zy&Ps{xihD;(3uGXNSqDxjA;`D`w2?c_}C}xT~?3dCw{gc4}xed!x7C%K{#MQ3STho zAFdsc5Hr^{+I*2O2WdwJ-Ea|RL}uRQG7DFtSD8&&BCW~=P&;*zwCZ{!vg%|Oq0kdkf0?<54CT9-{K*_}R(mYP?~^r%z4y>HY8s zPKK=CWzW}9Qok4av(O2T4b?F@7UQ4rNW19U#b3UrFSQoz4tQ-~HVvnpXoLGYNDANJ zz8+l9_x_F`L4=_ z`ya?PaASyrwfnG#oz#4gox<*}JmNTMM!DJWTK7&2r&UX}_d^F}L5JRwgi7zBtlj;t zq-_HZ3Qn-i!^jqR>G?6PQ;XQ1e0Ee}`xGd#X{`l9e=Secr`N%SfIbCGZ9a&{(0taf z6;v5S5khke!~(aP81 z_E{Iuye%wLTwjEa$ZR26rh_FoC-7QNTv&bi8czI}%H7)$Uq^r`vh($YLg9d~a`2dv zpB)vdM+*J|T8mc|_7R-eY5WGYYuG7FQnTv=s4g#?Qpf|-D~OAstwzZ>Ev!_Z%g>mA zCCFTIX4^n1!-x87twtd(&SQ(DR>xt6nj2`%2yT!5lI)GUqGhs6x37BTcFmT`2)fjb-MpRpSd zVDDueAlw243^b2MQbejf;`#s{LMKS9ux+k0L~0zIhwu=^rC>FNL;_@t!K?^>Hx+on z?eLHb#Z3rzn!M}*npUVab6P{~P=Q{3N}-XDHnf9y3|404(*w)gM;Ff^14#Y{Gz%Ur zYrQn)e?T_4y(e!wCMpMny>}lkbHeoPi<^4H&pVrish5I-G11Um(_7zw5`UK+=Z=)? z8yvI8(>WtrWUIH3hNe#m@H;;J0i4x@5H`h1z-?M3)sDAfun_lk6O-_?HMva>Viar- zmnH5n!Eq8klb`lO;GgvAFX8uP%(XK4m$U`3V-86OD{DSVy)t$?k2^$}3^8Wc`5>JirNWqKKVJ@IZeh z)!q)vc`IqoZ=qo%Z3P&S&p5aCtrJLJk?D-n4?`M^_f1&o$!>BuNk6`iwi8=LYZH01 zD7?*WEWQkM+t6Kl!4X1wgJ&@yLX2>1U5&>g6}F?8-i?&a_A0J3=2*cMvK|fsJMqv7 zj`x+5eTM%+Kv=Ei#sKg>YC7=d1SwdEc|m5d6nuv~x#`XYT79bflhQ2XLQq`z|3APN z7?k@HNjnZT2ITSdYfSZ!D4BYl51{;YV;n|+AvcO39OQDZ0@~vwVg#-X*c#C|%ysio zh0KR-om5*wj0JyPvc5yN~+&vzTAd|s50Lo!>FZVPOQg9V?E*@i@*ZPF4wMZD!HtYa-S^hLH z^G*+xEAGu@H?uvhuK$IOR5%0O?D>8-3{!(e#`M-VxsH>0XjO4-#`D(n;vnyc{odsK zX`~U*wXEl7!zp#==dkUvG`_*LQE_jFTZ=(JIUo32T!0d6hjE+)2uhVTdfDmjYL%XP z`T!i-i1tBhIvTLsxC=U1s`Wb;Y=Aw1s^U&49C18AVulP^&QxYorF*8J`U$~HFsXikD7dH6r+71(bHlQeH(DZ!GU~sQf5clCnSBN z=#1FsoUgqIjD5sTx*~Y2!MzjFoyDnatLr`0x(B@%x<6!1(gZw7?Ai$zzL4<)Mju8F z*(iATD`4UedmMPdls`P#Axlq1{O)>O>iq6TTsC_9H+q8+DR?gm;z4fy<`~6dIWb;Z zWP^Jju_E=5Eg3JjaDdbmhv=#0ZL$jw<~O=e`NOvJ0wZafvUZU|=<*k(+HnrKdYpr7 zzTdsQ{FtnJ3sFuDPakL{cZkju(QFz&0*!t8ogSIdq;iu1@j_hhQ(>KGeJF))Cb`(j zD|`tX6`q{z{s3}(4!|b=_3gjGc_Z_%UvT;dm}f_?vJBR62zh?RSbzzkXR_gAPqDC8 z95c>G^n;x=euIY&!jqHG`&F&Cca4`+LR>#ewcY$j-hbH@VE?`UL*M^0=y?;9>$v&@ z%MmZoZWvfEJhhX%()*LOBT10T)qJUgXMv6TAh2xj2K-@RCe}z(d0E8M_88>Z(R(k%;*9Tk@}(IW>>~I^+>7!tzGm|=Is^wp z8a;C@X)SuSPzpm2-(MtseT2A*ujFL?$x5J}ANJyX2v`8}7T%`OkaGsh2n4j+Z9sc`8C$fgh>* zLj?$3n_FWD(jjIl;%#@BFAL=FV~M|SL;EtruV1R?+5LJRLM*rC__QyrS`_c0Y4Opr zTE9J;+_)M&F9WB`Wqo2GU%%Z0UR~?emyUC7xq{aF`TE2n)%BIEmtxsB-TAZ+kCxLx zZ7?8SKsMd^ycZ96p_OVFnMS_I!s~Ht?1WDrkHz4v1%W-C_CjPKlAF*=307an zF)3?FiUC_Ahi~pwtY^^xZ2xrUYcjS|74|8m>qvn;?Z?08@yZh(m|9PD_NZDt-WYd+ zzwLm~h-#+?RXFk9lIcz>)Nla%uz35#rX*kU=i!NVZKDIrFF#Bs4wqx<)~F*QzHl~^ zYHxyTu`o$(j=Jyyyg@h;GpjuUEkTcfwMVeoaxaX^8^~B%(}lmvZyy4H-@XaAWwuXR zcSLUfT;Zcc)2j7dwEnkP>#zlT(F597Tp!_Ge{agw^Q_Q=R{vPgt?V5C*xAk+X~p&A zan!IT>@TpLk^RZ8?LODnoTBhp4`R8hj@aT0D^5@WZ-epRl9!G(dJW#Ypw*@L-DqSn zwqpVDa|pInkf~N&btyEFW@l8O+HbkGxFNMm`2R(GU z)(<-29Y@x^@C8?%52!yGyzTmg*cV}yeIz#u8|EbTM?1v+ZBh^q?ZanA3GG`cKU`v! zo`Un}1NY~7mL9M7y8~!JdTNWe{|P0C=UcHhqH1{ihaIa}2S1aFmw+g`)9KA> z=XQ?lvT`8|^A_ugTk`8ZQ~d@P{S*cq<3unSJ5`;fn2jZytu<~4ODhB7XL{+p!Nr}R)hJ= zXM3dD`>co|<%g#wBS5Q$f1WH?gSNHzCEs!u%G)aq}G#QZeH5d$R7uv^$IcWyLL0_OZJZRY_`NGpU*P#dKT=zcYIoGM+e7p2i zz1)8vF&&=U{3kIrn1R1R#*X>V+6UfRWE+NwPhc`|PDklMeVCIonsPb11VcDTmv{KB z^_;ti`|S#qK`(8AF;vve)XLU~0VlupgX`A-BQA$nInL z;puj(r0oPX@V-#M>#!EY!=yoRz@igF1VzKs&L!b$Q{8@Ni}ZMe#`iSF*MDyiElI&w zNr^(HpT;8<`%cIh*B}~~4B@e3!!Y7N*RPcxB#X5kk-p2(4Hb|2t^1U*%bj(24+ab# zw_<27Ya6{}YY@U&%0K}f3n*c(IQQgR5q;nyaTHStel?ol4Dm^Xx$V*-jkp`vBG4Q$ zB?6KqXps&nNbap4)cipulI`rSL-v53xeg&}g49qQVmf;$4P|V=*;e`=nj%Ow)P|`t z+JKL#GCF8d+h}g2U@F8Rt~O#*N!mh8WnT4cp(^|+&Itl#VeA5{lgTu;BItvJ&3K!_ ze8kp7o(8lD$-C@XlK3vkdl_Xg6@Iplzk8eTVOtE9#6~0ou(?3Hjkpb3pDU2=`?ZPh zQ-YG4-R*r!Gje?FYxV&)UOg5mNa{<`@5%Otjs!{+_Yq0cK|y`lI2Ogp0@-y&b{|os zyd!uult*=8A%8eJ=ubefGBGr^?oM6?RV! zah9EeXFcE0MC*8cQl|VbYeTNs#}xoJd2C8ODE6Ooa>z&a<8Cx=>RsT$EjZan1b-eXXg=6k z;6cC~JI@{-Qlg#h(EC_>8J81Iw7C2=FN-4`w4i%}NKs(NX`>9JXw!L=d8NQ+{D>8v zut>$hX`K8hQo}X0zuQ2!v4@Rd4PEdE6kYgEHySe=@u&h^Ko^zORP#&0Je3s`HB^!f zC&U{n|AQ3J!(q8@4`$W?-@xVZ=Q$fZ+0>4?Z*K0Q8|oj39Ks&(_-TE@`VOqt!ug27 zd&O(Ix?azP=Oo#8Qt)xYDE5qV2$@j(lKC>C4v^_HHbhWlZL?K7dzEz4o^Wo5){$Cq z2TlxoXsvL;*gG===lZbLDv+`0RaNu3Wrf{qXLn*({ZL;#WXyh!aQ0YELd=h}{v~d& z@TAQj2+qgRSM46-i_*Z_u!^B^idT=}9S+|}!S^s4euQod5|!8EsKdW$u*3p8D4{*% ziO;VTtl}UXg9`kjw=)eswn++xsSKD9Pn0)!JjfvTS+oHYfECk^u`YqY&g2z z=&**9tMwW3=T-LATM`g6j;|sA1N<`wasgiN4BUXJouHj{@X`-uEBeg^6T-GZ*bL36 z_^BDtR#;wv+T4OjJ=Sa^8k<|xr&Vhnj!6o>JP~_8TSK1UY;ja9cDr7_&Br?9OTwxz zp9UtgRoym{|jJ<&w8TsO*g)jW11JHcE9BaTk@%YeeXEtI&6y`0^j1)5NnY4nO z27n^YVECOyTE|7wN4|0{N;a*zT$3e^#H{uY{@IL?no z(#bYD5FNmSWqCzjJ>TJHZFtV9{2D(FT;oJIowgro>BQ@>4&Wc2!N>k$8wcPRGFB^; zMJiou!3JHUZ>%?63ci7zW^kty-X-EK%?IZ6W<;q0qs@c92nxY z`Dygxq2Nf+Ogv+tkkED!G&+zI667-piMxrd&^iHbszUFPp@&}e2Pj+_BE6}7n^cj( zhuDBSG#;$-%$e5e?U-yI7BqY?*oao?e5w~uRK~WV$AG?kD|$7KcJi%g6$!$ecA?kP zKOftzwI=%_N0W@7!4>2Dhx=rC)}|SU;FQ#$OF-!7JG9T~9Ljo1`kId#vtR*fe^$?* zPEWkusknEPUB|H%O6L%l~#}P}~9jMHQmIg8DHtIzEwFpeuJ74@S z;|48D%&}t?xedBFr)qy2kd{I_F&YGE5ah(BBW{#H!RNq*$Ht!@yMcUb1^X(rDP>?& zYA1nnnvW*qKq*R=B4joI{d;=#_n6FH=Zo7LY_QX_QUUyCM~Pi-_YTI<;y;rBp*vVp3txd5>F{)+H^|PB zmHQYhfK^?^I8M+{Y3F)x>v>)NCI?^IcfS(ZIbYS;;X0ZPJ`B+%G|;7Rwt-G+gGVJ# z7|ym7Yz96GUY!kdv|;dg`-mW(Q;+QD4_raes`ir&qhBt;v+E}h(Eo&APO*h)cBzcoP=Q?;=TT0&kWPB_?@E?tV{S;SOnoF1@uR8E6vRe zB-tXn(39&OKNer$7Q5`)k#F5@+=i17!q3PrG|&1~0u{``ITbma*teta9`^LFV1+*B z{T!mdFhYLT&QIGN#%a5w=4rbF!-+y0tvJXGGc!nQO+0P)B=w8~7C3FUnb_boPTReS zMB*+!cn3m*19(7b2?-`NhFo~y{jguV;kgWIu$b9Lt>oU1E8 zWFku@gk-UR0w6drXP&L2b9CW<)!-&rk{__k!Yb*>Y5;Horih=mOPJ0p!8@Tkyh_n@ z7T`AER5EXje>(Hh+$z17xVov z-{mUD=`wzB!f4_?4H1s(B!SRGfl#8|dWv*d?|wJeM{?y^J7mJk$}xS{L*v5FZFz#G zyoZZxT!`ZmoWDp13V-$^L?L^~-=#m;Urg^Js#&|66~H%#Pkz|W3Wk6i9PL}6hF>Es z15u*T0$0QBc(9;R3jP!ZjCw}Q2V|yqEp(gjmr=g&aZ)U5K44g+=Sye0+2%4{XT0V9SG$YdIqyiE=dzDrBEEz3u#KI z8Qik8Z-K%cf(AL#FQOFx@tGi%v9PU}U8%M(h1&t3hTW^}v)edEDb&L$q7|ANO~&`SayZ=+8W5BjkV^p7K_cY{A^4#heV5k#89`2G{e><}il z?|Ec9WNDo@-S2KgpcRcl*DQOiH(gVLgSphbL9d=L$I0_w_sGxY0ftJT0v`hli-hyD zbW}H=-InfUGctVaDleOhaBDe&KQg{%QLYp!x!hnDy|_H-Bvz8>lj)g&euT2 zW?}{FXOMMRHLPxapp>VpnG-e<1=A#!rVlIQ@Yc}lx8@8UOSi}R}9y!@tpq)k-;R#fx z{lXAM4mVH~&f3_&Rc3k90t5Ldq);1} zBGTlK2|ctCMDC#%B=pk9yz=!w$e6*Wbvjyt6@2$m(m}U%UuGN6;Fv|+{}bo7j46CZ z72+ka?t_LURIcItMDObbDrvO-BhFuiiT)uxppn30TY8@E{sugZ^?fBImm9YHM5iek zSn>9;;%fj8@x=)?PvmNB9^tJlPzJP4TTlOt-5{ih3$Pu=GbkM&j~1=ONsjw~u(;o2 ze(w#N^K1Nsj~G*Uo)o+RY1A4^7uq%e9x)~Bh@9>ZhZ2Ohz@cOXO7E-wFZ2Yy;l`XI zC+jf{T#eC{duzrp&H^6fX4pmCi0{E}#+eHI9#b~TS&UndiTRHv9#XIay8wt8=I|1& z$i&9Sop32wAnuRi_jBX-`SJlo3Se>1{Xi@Xa4J&@o`xEeYWrL{O0`Yx8#C|*OK4zo z5e&J;^P!jr8Vw(saTCso2t4RVo?KhW+r_(%-FtoEr4D~s#ks4z9j@*0MY~RD?T#F@ z(a-*2?v$ICQ>x9TH%s8qu6ZsC3&H$w;Q+{Xej&Nw zzY#oVF-CrgF~#4{2hRzH1gJa>1B6F5(_vNc(oSUXxTn6@nc%6%Vrs5NnH>)g!EYNx z$RERIH_mra_)vv^@00SH@LQMBO~2$Uj&oPtLPg};w{N27I59m?JLJ);$qSr#k1kQr zcpp1N+S0I#V=e^3_+Ih`v$A$Cb z+yg{)cz~<92N?JN@FodDnAVQ#>7Vft5a#&OyyJyHgzps?z1lE=;!zfZ>M>gBhb~HqOIb*2q=g(mtHDG6bQ=_G=~?OIW)e_L8in zuuwZb;&XvuHH<1k*gpL#uMVS%*fql2B7BV=q|lvs%Uy!x8qXcZT-5w`ynp=P@NUKu zBtHM}blF3_dAeiJ9r!`S;f%5vU3r{}ejbzPjz?MXlUw=I!Ew`!zhK6=whq7Mti%na zT3p4G_K~CDK8&kt@kIB*LYC4Zu=QdEub5=Dy;jfq&d(2sUK4V1W%OhPw=?L5Le zfCLW~EuqCZEgW+wSX9zoZpBFriu?XA@gji*j~Ai$aJIw!X~lYKK7f{&^Jo!9Jl(m3 z2r!Q@rI1lhJVFSGK-{nvu`8rp^)xd91QkjArO>xnUKww4A)?6;u~SIf=xV;Y8Hpt> zX0Y3%9{D(>h&h-?Gb>Q_@%gW`v(vy4;l2Zt;>ixcPm)?3(H5s^IrUDJDf9 zLjOVa(_W2gM38CU=)o_h!2<@iPsRG{=4w2Bh-RiOk=bZ(AkJ`5y_V`AXD%uhIhu~! zjvnlX0xM9CDrvYzKi7K2(Krgu=PHv&pAmsH7sa#+Uc-lIwQ zDL}0?3C^Qfs%smQjmzN}LV8M!RA`iNMRL5~Kj1Y~-TOU8tLq=?7rnkt>yudAAXz(* zD&hvoMm;PZmlQ5DT#k$z(FGnKC5}eG53#E$(~Y}7HIcC zYI=H!CXw+|r|r?#t7rm+awDC^6&zmYuqEiMM03M&CB3FcYfz9nfqj4*?@j0Z@Zet8 zycj$FLo+@FPRg!88qVy|yUeuxRyKgU5eR2-lT6dkkv1HlVzhXL$*g8Wm}=u3G}I#! zhY%9h^V^JHflK+pXl%w{l<`y1QixV0Faa;!-?)+-P}a@6zVL=wqS=%g^M5q$z4{!IQ962Q45E zOo4{0?PmeP-r<=NNcryf1ULkB00rC zTa%3$5G|A)i3Yp1^*#>5_kM_c8XaNE>GcqK7v}Nf9tPc)lA(^p2z(a zzEyum!tdMD(GPL%0|%qv-$wbHl;~{B*MYm~?b~?ocHrl51krT)2)qIWr=|KK&8A>E zFbt-A0jWtk52)d-GW7e1`}DGL^jda$v!N%t??L!=lgIJ*JL1jTt`GgzL(we&w!TV! zq&Rr-uQ-0@85^A2!b@qySsNhL0;DLOv4X51n@g%(St{t3)a0`8Lh&r7!+1uoB!$06F*tiPsD7Y0Jscnp(ITIQ_BMA}Jfa3~ zGuNe7MNH|SBDUWMu;Iq3bXD^;5Hl^CJ7~cdovT=lK?7H@uR%~(#F{cAb*7tZNxt$$ z*bY~*zZpPI2L{9zwV)N#p3#coM&RZQ3RFr5R8VH3@nFVqchsZ?*vKos6a6dmS#mot zHsse$&}0tORwgi$8_^5JButkS-__7}E&KN$bD;pEoX*vLyoYBM_?PQ}x*3d>PeMxO zwVDL7FzOFbOxRn=dwRjy+i*Rh4x_}x_7^52jQY;5U-j-<@R{O0eEQ*JiUK~YB7`Lj z4Md{F!IUq9#&8iuDmmomNgxU(Z*1e3=b;lW|8S90fHLs1#0|H_I~S5GQ7#`7&jWL2 z)fpKDG(1s(I-}BK8aKQhQYM1HU$lJ3Qh2FO*rP}GaZ=eL`uZ7--UVsX0QD=egMmnpJ zw1!p{nPLhJ5QwL-ldvXM~6* zEz4AimLJaPxe-%v*y#s)st2Ba0~S&G1JdIa&)*?ELXm!p^g>1YHPRl6^ed$2Dbg~e z-4*F-q`egB=SWXdq@N)@Ly@jT+F6kv!64&^amkTxe*6ZAz(zvvg6sVnr9v4mnyLmu&%jYujGqS?{>R!AZ9 z^ob*cnzzw*gD<&!RW;w;r|i`qR+KR6-=Oq3>D$kVjmk(0+f`3Ur;G-A~{ zLRn1IsKVV+g=fMxqHka|4eAhD!JXgXmr&%99}ec5fDAyeuYPbZ_k>d4DOK(#RyUU~DJ@FLDAk%$uPCKUsn?X!r_@_Y8BppSrP@;J1Etzisy?EK z(j9~&$-XLHf!7$Rx)WiquqzD+(S=?4h;EQlNN41J4q|l=KPNFB5$*%)3ox>XARr1; z2L^VIj%Ub(<|h5iw7r98v4j|0r#sMna>xfo?PKuGRiaJjNBfHBn#R&LD3*s)V+!80 zi*NdH!&=i=Pi8C6H!a{s&O!?mloGE>=+y+|xsfyRA5y?RG;sm5LLoA&o+E>^B&=Nw zIzs=D6e{BRW>q}#Ei7l-a27C90A*Zm$~`DHoLk?OD?Ne!QU7m}y$W75!!$*G4HXO( zmpO`Yz5kYPj_-3}--l~va%5A*E3V~>g{Hf(A7uCe-@MF8I>a_2&s{p?yknGxW7K30 z&WA%)gI-9-LEx<|ei@M~ZWKZpB8<9MD38brYNCsRo@iaVs<}t56hQ$hMCd*TKwn#m z3kAQ3JU=m#L0u4$DLfnnX#~uG&^uiLH^q27EfMTQtY=(nIp?ufOf7r5cAkjJSZ zZVBg_?!#rI`7_&^6+9k%kQ6$KUtw1H{8ApAnwe)iN%=iF@URXG{`H+|x;cuoIe9!x zF3Na%mh#ODBl1FFKnjhA8^LgbCL;h;@;R6<LH$-^pxZ<;Bej5D0DwWbf*Fu9Oik(YPF1q2?JC?D>ihuU}u+GvBwuN%N9`B4)T zjFJ%eCpMZ@sVd-bFsgmfJmSiWaE^F|PUyDL67UE|93Xp!RYKPgkAKLIFsY)szKjn* zVyb?kknbwOR}9}^`6FVlxi&Mm#%(pFK zw`5L|^sVR6CGOS@sK?Fs^LT0hi#3)4-)za2NO~dg%_8QsNnGIPXzQr5e1>oZ;_r6)Lr;hA z8%RHNVaavQmXiu0BWEe%Ln{4DL+o{eh&+IN4#MDXL3@G3GB=U{M1Q%FCy*Ki7{jQF z8|{y&fDd3WI$k>J1BPUAY6da=Mcg84O?(}sim0GS3w(>j;X4TcIpJ#56;YS-o%dZ>^s2R-v(Rvz@)#rFXsegHzQQsHhDc7H1HEx>Z*>YH`}BbV%A;E2dF z1Xt#B@lJZdSb53JP?JPNGbQj%qQ}w+6!;$7{$xZfVV=hVYJ71zQ_WbZ=M@$41rfoN zo5Jx^Q^i7|0mMlkLD1x0yfB!4rOq7qnC95qe0K5uhz`R|OQs9-Afv*W*SL>asEWSe zcabVzeCkJc{=jW5J08YT3V}qo4gj+J(nDfZA7JRsk4rxsky23{Uv5z=DF%?Uwz3!1ui*oxw0y-+L}_ z=RaPm-WrQ3OpsHAiK>KAwjb7M666pL*R}yu6R5g&oU3oSAL7MKBOq{KtI4zdzP>fz z{IkFp4y26JQGpG4B=Y?v;GX>~;3N@wIG{$ZDvwj==KI){d$z)r^CwXT(_12GZp2bd z3mFF?!U+tXs{md{sduxR?=3gqI=HYwZ1MCJ)FQk=xQQG5BASER17Tf#bLfo&y}>i# zYjhf_m^`>KK?nTCh!w9y;mpUX==kYzY{w(stpAImPOSorSUh*}{h(|GRe8CI^WDsA zuW}f2)jeBm2wHxqHlTlLvQTLEE?~3?f-Ib21e&DT7aJ4sxl8kc!Q9K#nkr&2>VK(2LD= zL5^^Y%^4#{h{oo+AxGH8=1hqQiXuktA zq(fAKY6~Hy3$K9DzDCBuNSJ&_$8;Oi?>zF&<^S%}E~Q(?j$HTT} zSjqEpChsynZRVvJ;N3PJJeh!S<|b&^-dv~6xBVNw?a)s?tdgW8(n_|Pf|gKXs|kKx zeQRo#v+@a$YmY8pvK}h5@H+xu#f^^Ig)mq&0NpWV9iwzxL#<#>4}1p~GaN)KHQ>Ra zw_{X$+%WB7suh><#p}%=u1w4Zn}EFr(AK=y>8s?1}OvnreWA zj1O&JaktQ+BVYWtyc)79I}c>AbrVl{wvV9c1N?CH&1YfaD1PL!A&dG2Zph!NPYAMA z7veGBwvZdGj-rlYm@askxk`c!$P`>G_tRk^BYxn=!pI>?cK}by_$EvtIKlE0Fv`=KWk#B($=nz`x!H=5M552;ioh3x%OM)>+ub4S{ z|9_mL@rpUh`PUo;vvc%~Y19z|;fv4ym>_JN)kKZ@#EiMo1VW1CQTzgdaSa@`<$TFf zGv#FP#WH@BE@_)=WzoVBTQ5S38>;kN64`` zMsH*=?t!ahy<+y5fhcDXT$7ng%-}GH#5AO<>xYW@x$wH0$1O;&}Y-mmN*mm_AubiVu(jUR8j#mU)ZJ5Q?WC( z#X^ukrw7pe3O9Kj1T)xX$o0WnmG={la9qrSjo1tzDSwAjKlX#zY>To~9kp+^P!%%= z^5ZB)`w4;fHy1cQd|ogFbs#Om>;FC!@U?slm?=MV>JWN8ZXLNOA^Pjjy%wuc^R+x z3s36W1r{u&fK=QMRyBg@ELTL^PFKku71YBMUlT~;C~^kYYG-ardv7>GF*ag?{!PXL zBam8X2H>>D_c8c6_hLX-73qFbaTK8Mz-nJrNAnjvxcrnZW0`J0Vz_*94LKxxuNZ)m zb^X+Ro|M?FGnhrruLIzVgP9S0!w8Hq0vSI3iP^$sztrN>3P3zyzY6Z|*CAw9q!6^z z&v+joYF=Z@xZUDPiGLBxA^CEA7A6QGA=5GDDS{vRH*@{shK?TyMWviK+dV3=YI4sAC7!@477^4Qo3(Or*ZKPZvVHVb}1CviSM#lhgCR= zuZOMiS++;x6jOH%;OhTNk7i+|1h|@5L}NPUh!Z0v181lm0e3;PN_lpZDntdwX*3UK zn>fISK)U4x0W>9s43KCMBj(CeQZ{dfvR{aG54r)OajJl5EyT)l=wfOE{0DCfF`j?C zrL}QG#Yjcm%EhA;geVDwTr-F0=-%C`Czz<{1e^3xpy`Aw-=v z!~BDkZ~2Zl9cq1ytN>Ao0TZ(d0ZbT7I6z8N8+jc+ez^>g=!AX#d?Ne!YLye0`ogfr=lC{V1o!jlPCjB<`3b zh->1T4pHhYQk;~>GGd4cQMxK(cQZ&V3}+J;{Rf!+cx2mGEYA8|jAM8$s*jI7h`8`` zp>tGw)Wqaf{h;>e5M`{)Q*iKzA_!X?$T`A60w4r9kAQQlrZtPFbQH4cWg!Uo!0 zO3ZWyX7VxmAE@bW0AY!Sp#U@LWL7>t$QmM9aRV3%;hQ*1Aq2|f*d?{)zL}jKQGH6lOC-f-+;p3$u?lep$?tpe15NOD&ADPI3SIkMdNQdy&~(NGCADHsnQm zh)@1wcCNAOIHTN1(O#nWVcNyn40Spiz(aVUVhZKUCB5`45hQ8Bw8|ebRFCWMWR;@sRAffbqdM6Sm~hp}58nNVuX^Q&hR(nG)crz=m@zMmM4;(3)qJ&pQ?~O!b5z>@FbMc!H0gL zv{%GKxDiI!@FJJU=G53+HJhu!4gl{ivbkb5_l(U^SWLXT%;pZWxpFoqVRIR5?hc!K z#O7GdfwXKkr>Ny2o6BcQ=CHYwY_5pS9c6R3*xXV!cbCn*fq;mrhC+$kYY454oF;p(d~n zZnz^7Z0K2aZnzCH5(!bRG)SGB0-X(44ypS`gk1zX5;0w9)M2~8jXs99AW~nahWO(Dw~gp38}UIS*m<}@&x)JU zAZ{qG)Xsr!m2xOq7z%}17coO&BPfISfHP23V}>nAL^LGxtm0;=pk53hq%o2@14n2w zNe!bHVoI5Vs+#2rzRXPtXQm#W{>8nsNDa|-=SvMoi) zX2D43D$wOqK(UTzoAnbQ*#U+Q#4JOjaHQ(`%{ZcF8l?u|cOXkm`#V1QWy04Nx=K%7 z2MW4MnW*ldPw1G+ro&u(w-I0NNMf;rD+Fpz4d8Kpnv*~>MSZWxM*gsdTT#7+QvRX=SOX_a&X6Oi~h z7`=4pA3pd2unt0NTmA&=BcpK2$8m>))YC;DH(7EMh?h)Ix`{|o95Ys*w?ftxMoRJ% z_=c8wKVseg7zHMfS^W@K+ZnGBIMK8fYbAwKK=Cd42W;A{GB2;sY_4PE-%r^bA=gio z&Q1{;A9Ih zSCA2r5HsH+|3$qd*ffcmiT4xlq>jo5Vg{s_iPb@yg$SmV_IHtzJt=6EyVV>0z-__T zmI4aa(o*066_E12Do!rcwR3(UIe95FS@N5NBeWXGOR%kAEj8~@ij)%M*C<804{|b< zNhP%f`B_RaM-oRVMIKt@WH6gb79w&|zevSutRkn-8L8mmD)M!dVzd)hP>RltcPe)uOkt%=-l$0|$5ub3UH$;F(bml-Zu$VcN5YB}` z+5TxLRU~30cn>9o!$J5;PqMbg}&)5CgrYo^d35DB>=} zVniO>l?h8zl0V=}1d1X+u$nvupCOZ@JaHOM&0Q!(Ko@2Ayr1?5sVDL3XMd6s!?I`- z6=p>>Z-DPZiF!74BwOTFaS8YAcljqMYAEDzgjSg1_Cw!d(iO}Rxzw+N%6|wGakjlF zbg-buhbV~RY+PQMK=(Ds27}T?M=k}Teehxdd}Ttn#vVCrb6{eqOiZAJY$zI}&|5+- z?yEw?vS~ADi^oUMO#lkqVkX!>ZHST^I@HoBe14gn#! z)MOJ-Mtq~@3{JRO#>Zn-NOt2DQ@=pm0OL7bfz(q|k4e{dMqVFg+5%1k!T?MX-~4sN zwl@W0cEmw;%~PB>9}DRZS^e^V9q z6Mg#PKIYi z(Q7S6qx}E~=PI#uS^Jh=BS06PDjeG8+V@v6Aq=&r3B*&zsyf$x3iUMC9#l#X?db=i zgeF-uEW+2g*`yGtQoWN{>uNe-KDim0BAKPwVTub~#4<&Ny`&Qg!kV;K{wHJAl9kwBd zVoEdFBGI$34cS?szES64JjZqXz}K!OwSuVO=mKOdW5$JJS7krB;pBrN7waJUCs`Ai z>#%@H0{z;F)&zVNwvx4RK{s<9Sim~q2$taNU_igQqA>cwAEp?rq*N(w;KmxYnaCbM z-$_BQ6;_XBImp)BCw`pk(24pd->u-!$P?J)5iR-Y7?O%S=trJFD4(au^U|5@WF`xK z!(+TH%bk>Y)W;N{>nFB7W(wrLwdAMMnB|5)^2D*^ty=PI|DGxGkVPoCJWXK_Oo^xg zH#j%M4#w~x1PsFr$&a9<)hC83pyny-M`VCvm|cNz01B`$W@e8YK}z$v4inHKAmPdW zU=-*8#cl?889rNc6GRhEkJ0dl48mo3F>|8#BY#bqXM8BbzUyc6E~s~qg%`|k$?VMS zDk#I?*9`2q6Bd@0Yne(>j?{6Uk`4*@xZrT_&9PQxIF zJ$H8wOS=&yr%T2Kh#E0M)-MppCHFd^K`@!+PLqsV0L=$=ftvqp=2Hdn3gJo%1YZW2 zu;>;}iu$e+Ujs5S)Ilj^G3WlXT{y2@#g+eMZz$;JZ}4-SL8nD)_?)0)2$3mJ^Dqe6 zFHr-mp?AhE1Lirh;gI7A=vX|2e=&e&n94r^^)L342$fPL@Lj~O$rLP?&X0d;kI|r&UuWLI_oA{J;WP0>eg^*( zPZTyYEd9#U9MJn8_(SXakRSBXNfNvOizv=H;l5lQrl_+a$&lR0(g6%rFpy?pSsmG| zQ1YMlG4g2ub$zQ$wk}}@Ixl3?LG{X~L9Zmvod z5ZN&-%7Q@>A>w+j38dDQ%U@d@Ml11CftZLh#S{+u#Qxl7`O44i95n=G)ZA;qSEBz) z#t4_OzXhLGI=qMG@A^OliW1*vTV2O2y8C$4sw1=LioSdiYT@oIA`VmI7V%s>BS5%X z^yRBC$W^k~1QvI)wA>9-X4Id>&?UfhdfEHw(%vmb zs{QegPGj%TX>7gKCq~-C{T8IXT;fbBHQa6D9G+T`iftX->Zz>kDp_YNeq{c^l~XM{ zjBbk>RMwXVwTD?O6$h$8_+TZEYqAySp~Ob^1cT2YLSaHK)XLU^E}8YCrbr=={Fo2M zKmU*Uz&(RNx-^7rGGb7@Bqgm9_9#s>Ptk`*BW z@ft0eJ-R4iR*hT-=1k!SBU4C%Vl^W6{|QFW-OryWM#(N>HMvax`I7nl`PgTuqb&#N zNK>rJkTfi1^%y=*WRQltD_80-iKTNWAvGNAMIxZDnIKn`iZRh2l9^0`N#0Z>ncd%y zE&%;Q=uJj<{38))09vJbD*;s+yzI?rCSfUijzq458I?wZ4rnlgqWk_<6bVZAPUt=RziWV%U3a}`I9lJbece4nYogiZ-VFGq2RPFN@kWDEb}s}_Du*iFm-zuOL{YE@`) zl{oORnGyoNszN)sN$5aWei#5DaGLQY)A;bgC+y0Xw1W~$kRe|(ZUU*g-sH2)0au_w z>1_BydphOC*PKi-;eWs&0S(YaR9`b zay%~vVyrD(T-A*evB8QZ!lfFfrkv2;D(pbdxr(I zohAJYzGN^3M_Ehrz=u~1imeXo0EWOEiMEcT5P(B4q+2%hnNx&_p&O4Q!)!lukPx3D zbafRUrcn~)pBjvIgd(2pTL41~ zl!ACdi1GcIK5!K`$udTO964*W_~wIavVgKPfhrk*Bg2Q5H7NKHgGVh0$eW2xYs>so zhdN>Y3AT?T-UMwSM1b1lPa9mtI#R`k144N-oEKC1Q+#k9^hOSmPbojTO4iI)i09}% z>=J@T%TrLllHb71uT`F_Z3C98P#pvlht3ismonlg$HTzIyhNsK`G#rOq z*-U*AMWN-etTa`WQuIrB3ftY5{gwQ&&9D3tdzw#^a4LioOm6s0^m#)lv$f+!OeAb` zV!7N<2J?WaL7}t-vZic1Y?bVByT{3cN^bZtJR+nKj97sc@&U#!kUBM!wNyJSnp*Zz zOF;Af1_&X=Y|H6%k~jU@Hqd7-9pymRUqC}vBLb!3X4nS*T%Jk;uGnoU=bOP3h;1;v z1CS+ZfZQN)HW<7uoT(IswuTj{IL91eh!N-#u7W)f=VY7#iFt$3Tg4YRLj31c)6CLT zFJ~D}(0=g^#!iprqi~zafzwKCbaGbMp+8KgVa&n3Xb{y#VC!JB{EY+yzAOLEAR*l8 zaKlNhP>GLMPRJFAK-aG+Yoo|Jn;ikKx|<> zxPF6y8yt5N;K@4Y8WMB|pN8KShLnJek|BB19IjXZz7lZ{k5R4Y4LtBmkY;>;NYvZ3jYi;FMtzkxQjSfsE2K;n|VDC_Gk27G7`s_ zDDz1sLK#%a@y9gy8wfc4O%YfWs)b@TVJi@yFov-s6WFSo!c!#EhxVp9sy{7c3?IRH zY=x|pFX)VuSqs1+<`wAizwX1)hc)+SLPLI*{dMO<=<1OcA;M{Y!SJR{sCdKX9-F$jEw`i*mN68J`= zr;IR6c7AN#eA`z+f59M6^c8v{OQ=$83Y7=a*S7H`*!DoG;)@ScPZYux0}8ODTG{JC ziWa zfTq>sAMhmT{*ng_WAXJbP^WcAYG_WlEv{hX`815GnbDV$Pp9s+toO1sSdnAjZb~>P zu7DVn!4$pzR$*Kw@Bd4A!aovgTW~KW3?qk36pEFTxxo(_S~K-W{eZb8F?6d>u#u&r zOd}2%@f%m$7oi%UdMplDud|3*V1WQrDn>tR&RZ(=N@=_; z+Y)SPP@;;JW4RH_F@lMu{6i0uSQfB`M}bvO>B3VpuKb2N5q&s%Gm?_=EYwj`m;i9Gh`nnNFB0{9Q3& zK`uC^1Q#9y&2@ko$9BZmAU^_+TqF_#G<6=Uv_FxZc_HV$?ah?~?W6j)7BOT;I-D;A zA_oIVCd|zL^Cp#%8=xu2RS4G=_E7<*T(%n=k}LUesJ-$^%dW@xz*J z%Jo?iJUiEU0m`b#&S9$g#JRi(VK+1L`1AS=e}NRgQv8`V1t2=vdJ8)3s1{$NaHh4g zf&pMckAsZ=WBG02KM|Ri2}(Gir3J(uC|D+u0(*po zTUsSCfHdC`G5iD)I)4Nmz{NFakq#llXi)4N6hdv6B*SC$gx$cBoT)_8poNNM!O}%s z=mtdp>1Nx-_jL~6tQm7fl>b)t7-QzyUgwE(xY1`(2da&x{VXw-u(c@2WsYC4qJ+Q? zK^We+_~sDh$Z>rNepg+kn8W?8G$gkXpU=)z|BItl$QW4pb&p*E>ZD{3w z4Jh*yzP42OhQ)40g~s$j(J%ZGt;)%ofR}-Hz<+rXz5WTmH@q%IpTje$N(>m@ILY&s zJ>&maIE-t~H=V#WM|4WAIeg}F&G(to5V__@7%w|q^V6pBO#XuDIp#OrG!wr9X}D=6 z^NUfDsA7N&eswMBA?i0E4=5&->Lgp$7p#B7b?U}7=x=;fvUWNacUK?)qxleI0wxC@ z*ID#kJ-EHZc>$=cBkRmz9snnC2w=G~?ZcqC+=Ayf6(aEcnhHjwsVV(w{QpJYbX3B4 z#$;WUO;J*~JEUK5*~}m(+u$iePsy4Ekb$Rx&*4y_FH7Pe@3zdTB5{>_@LNm=1KuR! zL1q9ty~be0{!<_|PA94HUveuV9(zp}Rx?!#kN!IAvSt>2f}}M!l=3YGU6cCLd`@EI z?4LmxpzOUbF(z0bgJc&f)K@BG{S{pd=Hs-6Tm!U)aB5G-Rf~xNWV+_K-G)$3!?A>) zYdkcOeKuod@_TrR7Z@V6TVz#uN)y0n11bCW^E}uqy1!B4A0S^1bi_O%Srbn41qjL9 z2@^<8k3m)PwJ5O-=cF$@z!kIvl2(;|CXns`&(1K3DMp6A6V+%n7YML(!;7Hz3Iu>& z3_g)@`>{Quz2;AUF_xOa{paYvy*yF-kIvT@Yi_My6gc##ul(@txd#SCJ=Q;x`eao% z`Gd-+vZ6ixTrX;0S$jTI(<1fd_O4gA%{55r`oZMfBEhmtb>+N_@OAeeb*Xv&bn(RG z`}MgI#iGfv0qrtR_|IM4==1G$-n`B3(>d+S0yKPmM{%1z>S;-Dnk*SH(_o?NbKdL+ z%a_eRRQOzNr1O3Cao-~Jiu{vXA8k63JTxFSam>TKw8!?1>8Jk=C><0uy~6RH-oqzT zM-`qrZCTcPxJvoNu!$u%JIpD#np}UON3ZKilmFO#`5yP^mDB^Ns%BbIt!5>b>E@Wq zbw+n#y3WZOW#M;m8}G?Vjb)EH=_W<7eGMMeiX+Z1>z;g3;{r!FB1Q?fE&WjkY;`8Cn zZjFF7M>$4W^;#Rfu5&-;l%1P5L7vj~RceN0ZPcZ&6Aa(Ym6&C9J z7hTl`&vI@3SKeB^rz4lOn(!A-wU2>;PR1q^-MrtD7kDK_EH%--?{_Kg`JB7@jpZ|A z^UBP7#ul8raH1r)9pAshN6g(ddeLIN6W)tf>)g|SzQ0*}XP*R>*5?msuH*0IzAHMc z6}jL8r`z{zjfFG3d_L#TpBJ{wI-v7Q4gV!8jqZQ1>{l%IUj4}6_SmQMmsVVAY^=?Q zcF0KS_#pb+Y}w(54?}kr9=x7iYV-St3itQ((+cN%r5}5$k!&~4I#KYbpI)h}QR}mx z#;RG*Uaii%Ry(_5QpNlewb4tgR%I-7+LAOUzl+E(J-%q^Z`RKi{JuL__qLj|PTHjo zsyzqxZZ#=m#N``iI#&{RcwgwJz9?z>@#d0jt9u2>k^^P^yC#%RJC{B8&)y$=U++7- zD5&+$#i}PYwD;Lr>(@lg*IeGtOQqGuu~&DuU!D3aq2Kv6Hbxh9|BNo$p_lRCMM~|H zwLK~x>)bCY-ZbXf{r3$?PZul^J?eg^L&k<_y)S*L3O=_q*g2(BwYOGO;397Gtq~f2 z({(s)nh(s|x-h|~p}5(9j^n+64k6E4$G{_)QpW*4|QFLZev zykzv)MTH4ZydReN=~URi8&NvUBO(3djRR@r>+dBx%bSxejXzwuvN`+mEz6xr9>)$} zFl}XBaCxUj$sKdAa?h*t%X$r1?U$4~cFuKGqXjc|^;_C^SccApgVDOzj4E1rOKVjv zhz;~*zMsT%pKtOYa9q;}DeeXMmOv88oZ5X%3#3}LkoZyog$EsxSUl!EK zOhx6_<|W>E^jE@+88vZEe6!pBOBa3%T$$i+Wn1gr*QCF;rp{s;>Ojy$DGZEyX@2Sr6O6cW7%akSM_eh+ql-J_1JnmruE$z zX*+F|+tUSBC5{rGrX{yLs)9Xdq+K=)h(G+$P8zjGKW6)c*pl)#CvWE#HC4Udncwtr zdWp~SuGOpj%ac9rr=o?xR2((?5B=MjiM6Hm};ddhKu8`CfBv3dSE! z*v@$tx4Bb~+s6mb{+8bNY?bMmw*__=EJSVN0ur@1oiY{Vy)yJDFn0?5vLJZgvrnt+ z2Brv1t%XL~U5EBK)T^~uaMQTYi5?lWp<=?Bz1-LWfMyhT4-=+M@?PPG^B zRaRg?Rv0h1)VaiZk4Cjc^o?Ydqv7F3>0LJSmQ73ZUJxq_b|@ms{=Y zTiZ9{%_{#}rv-tQhTm1En+oYm?Sg=T@g6}k>$byBYHIgd1VORiJi9i}R~?TzDoEezXSDrDpT3)~RHo;DI4CWs z@hSh7*{im?>`GO7`>zGZ_3T8Odxs`&x4UFo5ZGXtzi@<8^_bPc-=-z|&wEnu9eQJ! zw#VC*HiFOR6SPy`#kD;+__p2V<=;$q68#Tbl+9UkKU{5UhLh@(6WW?J+4&lYYo+QD z9o$=`PHd;YbwnZeVZ!s`V4YR)XXej4o zry=22y{wWR?6!R6Up(k3r_JDPFZ@l9Z$0_jcdObydDARD#^hazCfpU(J`b9&J`{yv*X-%B22#Z+;wb=FqT#nbN(1pI=T{mN2#3ia!QF zS#JE>&ftFT6IU*O-%;rJ=Yyb-C*n}|i{sXJ(9&Di!{^@GBf_v%JG+euxfQRz`rECX zHRlGT2SoBi7ne8LER}C-S`x4+*?-#W;6yKjV5?rO+QkGpp!^gv8I zn|%jYHSITDnjG7%Rq!8U)2#knS6H{#a;R9UIcwaOnN@nx3nllqzTO|U`SIs5l8r9v z;^baAQBiaEimvKU*;sw9TUg>4RB3$W(M<2FZ-&H@VU^0f`RS>Wo7#W9J)7LtYmd*?LGQ|kJ(=bI+a;Tl z{k3KnZfthfS~s`y%2G}wrzG|2!?90G7kwBUTv0jMz;{ZVSLX>$mPcjn;|!XXHJl!E zGjmPFnd7rr^r6CdtJtCU2*8NNzS=E=ha%H z&kl;8b~CzD^86943sfQ#7url1s5|TRo@ei-Mnvv;F{&_f)4U6n!=HM)Z@p({HaK{b z!Sh#t2T%E3uk?-mf~yl74mR|AcRg;8ps!_5Z+EW)&ps`6S-(^3WA3`+_76H`eqB7i zAZ}>ClwQ&sonqqR*Z1wy+4AFZk?{uT%Qp>`gqfQ%}~9tT1$qc$r;T85X)we_;L^e?joILtMT5 z+y&=XnCGg`ag9$c`xv{Fzpc6WYv=^Ow?@MrO?K;ZN#D%A)y16Jb4LzG=^A%A_jtql zlKHmVLyG##^57jNg^m@6voxWGDVId}7_{9!YmCrqfC zZr|)V{gbuaCIyBgCRNvocbh>GGc@JL5q(9D-x$>8o< zS)2409~+*0q{{wE)~2tm2AaEc96SEw*}9cI2gS5GusI~7Uu@U1JtpJw>O%%32r@G{ z--?d<@fI1+jQPCEwy*o1n7A1q-uHUZsEoic+RCo)d=b!yYurq{}&VL^U5r3ReUv%e?YTmEO>id#M3AMtXI=~R2t_RP22 zGut?7ymedYD}H}h+MEAG#%q{6an-=aA>DTJ9-Z&)arNQe8hK7*(w2jcIzIaEI%_U; zJ(w}^&ykO<`-BhuV@J${?*j(>amlmy*K*l`w##O03GPre#ii{-pOI1HoWx@XY{_dBuTt-?ZdaX zt}lJqb!zML2dkcUYhSlv)roN>3-jA0>Ia{ielYuzZB8gB?EA@mFa9tz)v=DZUNX@* z`gjMwP1(yHjqYE*w7<)x;$81HsB7=8PCdWIMelI80q2bbql+9YrY`w%?bBoVvF-CG zc0YOU_UgO3!d-JN`MuX@RZjFDtZ5nZR)0?aKeQ)a)?9qObKs)-t#aR^Ll4Z|eOUi- z)Sy*QQjb(VkayctR2HRu(Y0Ub`L$PGrdnujyV`Yo*A#=fi_V#RsJpaG5T3y+@AByW zy2VeQ*VNxno+v7g$ZZ!8J9)1EiOg?4jjK1$%X{6PGu_=+BcQB_JIYt8rT1~f5|f** z3k_yIn9X~BX#TS0Bh{W4j#IzyT%;HA?P%*{|Dnkzn#Lr?20Tv7dw4p%(SA^Az~7D) z(}SKo)Vp`8aMaY^WtOKWma7cESu!!~YQdZiJucKIPfoht>)z$vf23YH$~99>Jus_P zlva*zS>kyex#_^AYa^#DaBY({r|YSUeioxvKH+WSJYJ>|TV#@6`@o>@vhxvQjf=_M z2Ux!1ksoh!>}nOm~LiwU0OUk~UnIGl! zXm)A=U)^HGV70C<{%Y+y>#5$_ya}zAjqIb!`zu4oz#vc8WRur|hU!AtQ=8g#0TfAuW>P6lsp6lP!*{R*UzqLw2pLLoC z&cEaC>|UNgex&Cl-~V7+XKzsAe&_l;JHi~Cg?JX-BN|LNG< zjh8BxMrYJEc1+1|n0+q#!NZ4#Wd{p)hT4>7Uw5zg@Oxp}{P)Mwz2@5`YdjSsT8}H$ z>-XqvYa>@{wXvUg>Z@m0%&xt5Vt&OWt0mF3P75>iv%akx zygN`QVE_m;lp0r3kyQKMea=|^T{$&Rw)5;UN{y8`M z+-u(ty@M7V-lw{FXX}018YgS?t?ia;&W~uN;?-{V)v+6&rLJzj=6t^d-HS#xJBp(J zeDNSdZ|#%X6rINvJvJ2=-G6`o*_Z`SlN!1|5-r(~(c#XgOTDKpJr`WnDaAQBO3S;t znY$>^Ph-TbHXNPlTjw2UZtzK1ILE)axI@4_$N1LILQ3?C-i}undD^NaWgnm4drraZ z4xe2XI=hWt68t!!aM9SZhu%-@D|GyZm5z9KGCjegJng^@=fr#KEt8w&SFU_8zI8c! zvq#cSOVbO7k6kXXZgr1xBiUm-gFrK__F_HQnfg z-mNN(EL3aBUPPs{kri){wa>(SnIqLtvp?2LCc0`(3*YVVm`KGi)uu7iHtDO|%|olR{5AC2n8`*Yqm|Kn?M0N|Cc z{oD8go4K6r35Ppvj(axv`0XBj)4$C=V_J3gf?dJexV9pTP1=b8c>>c@1s;a4zJxlN zKbsf4V4&TqPu8Y_l&;!FLiM(NhmP|||M0s&nzU+OdEo5OTC11Ub>F{#%f9-cVEfwJ z`SGJfo2{GnZr4mZpY9oQ;`lt<5u(^}J!4O{)=qB9Gf2pfnpHc)-Kjo6e{q@J9bvZq zmOAgY4zGBsCvr2<`VSB7goTDwOHIAwz-$*wK4`0UH++~4x+BAn?S*&+JS(%}Q zdpBL{&{=(qEcT67F@Aa}R;6vc$jU>K;InNu+erWBc#xRyVJwYGU0Bqm$W3 zEW@|YH;;?&{rpBk>bLT^#)oychu@QZTN8HDKmCtH?{A55+M`c}+pO|rDD9=QKR)ng zcp6Wv)@z1S7n=Z0D?_{MX8QUO^W9^|gnFJ-o3yGa)72+`!v>oh-D7*z&rH%kzW*=7 zm?tkhRgAv6TX~oG`22Bql}D*dm3zktO`((5lvwQcxov#kLb|!#keIaJyQj&vYs8lo z%nYr2?L060On_kfk|2-xfy3Kc%X(>Rp42k+T-3&HUcZ>*tDbL77aTpZ-N^6C=DvMC zO?6xO{1{RoJT9|LxFs9mR#I$e0tDnsC zPrecAUH{fYd)Q}z&B|2mg!2d6#=YBYcYE+o({Ia({yEu;hN*?$U!v-iF;!Fh#1oDD z>>73H+Qe4w9U}DGO-$t$j@YWVC*q;*q}nR&E{$`wN_Tp+K48&WXS(w!L|e>J!b=c%dxi*3K1+vy@lyZP7IPG+N9FSA%?T;D%w<+TAHZ|)s9?9iFOz0%BOQ(k^v z(QRtN@+X7;2;TXd@ydzr{e&IgFAsX~r(>x2Nyz$f7v0zCX?0k8&!@+#FyWDqG2M2q zR*%26Cg;|-fb;?97Kid9m)bOyFKOB)_fOswuqgQTv;|hbt1hgw8R~O(y_WA{L%TWs zPWjE2XHA@UtmOXOxmW)7>#25me&s@`pd{bK#qeOqaUR{rkKG=$%Dvq8>v&`Bd{^(3 z9d5Btk2+o78|$p`?yRHz_)q+erdhl@gZTE`DJ#afRQGj|Z0YLxe!+xEgH`8y1*MOk zobpiHqakz4@5BE}o3OV1vxym@54@k*%BGokR7~}IvuVna$n!I5whx(Z{zYx(Qb+Gu zX9g~=8fp|)`FUB&v-9`f{=MR8S@p=I=`X*R`M*e=Kj`^ty;ilo$J)GoZo++i=)mMR zv+L)`20nW(e-l+)bIN-2tA*3Ad~28b?rULD?)N?nQ~eZt265ezo^&OD{gKNZe51b40x`{_f!7>cB-srd?*- znEBn{`o3L#avt>!&Fy6GlI=D5_O;z3zho6}Je1i+wmaYL?1@`jZ^YfqTa%Ng)8_qc zzNYZbro|5TGK;(1RlQ`f{cMc=w#8qAck~-GV5i)ybIh^P`}WNBJhi*$s}H*>!*0Z- z=QbP&J#%lLO}m)=O{)&ZCNDMpBe+$&KdsWn?yW0aClwF1+%j&KX0%?_%&qq%3pa=D ze=QmF`LS5tWn)xMuVm5QxltRZ=wA)%cCLEElShT&J8yeNOg!cr*|F2`O%ImqoqSdh zf5PPQp1=Im@18ocq%ol;WbIk=w&Tt$J>B;7nVjE_zu(a5*x;IhM}j7;Jep$1i*GQ$ zesH)$-Ql(0{yLPgXMghb6$KYGI={SVe>@{);~jD0oyWRK-18&OyKsHZN#;#TE9tr5 zvY}vBs>dgdOWXHZrI&BMaK*S%bk%$2qm0-gZ;1X=)926oOZ%pzZSvW-TYdI;4J&^) z=r{jaPxhDCT)J_=tahE2`{t!rD(9Bq0ATFHtEnFrl|HSk2p&Ae*I@F5&R%h{qn1rg z2664joNicFu_p88{M_Sbf|hGJ+_}57_wF<611;KgGPFCA@+GoU!GSLKWPJ{;*gEE1 zj>&1Q)y{eGgU*ib6n%4A>k;#l6C+g$22QY9xaajO-H560o{f63Cvx7V$ikh2vp*v#(LbAwI4PYM3p{!OV~!^Eo#-t}uZDA*Hs-Mgn{-)9HB+}FD-{gnGrYv%*| z?mf zyC^>Rxw!qxdy7urI>F6YuUVyWZFcy~_`srS__ers+gra0p_3mCGt$4*$L(S(d$S|wYIBTr zqYiI)e6EY_{F3$kibA&UT++RMMDNe=+`i3k`#`%W^PN-PT;R|4)NRnT>gIN$;@JCp zm%s0*cjfQGZRRe2 zK4Vz^^r{I7<2{@0KgnW$OOQmZ=rF9dgZf7MhV;>W_Vl#v@ zH!f3NOvv<(}bxj-qT;*hyp1H8Z+E7c|qwDhVdyn2V zZ%$dWsSP)`O1Q(I>`vd)87FKyw{Z$Py0Ta4|JUA`2gX&E{r}8NlBP`=(uFoqmMIh{ zOGCQS0z%THOVT6Tz3%3> zUjB658Rv|i@yfUrch4$*X4Dl6?+qRE#=OVZToie&_p8fKU-r?Mg>Rqs*#{>dy{Y-) zyot{p9jn;#m1pj`;PAVjeg49-*{x3=aK?GdFMr^vpS}P5X?s1Nc;%M+NBnK<-mf2f z*Q$%g{JiP6_pS(k_t78SvMg}HmN_@xy}fJFZrA;3R`;xe4SRmEb#48)JCA8T@%ei?UMC#)8&9P)WGPQVG@$5)>qHR@sQ$u4iGIh?JnNy~fOr0KC6pyt| zX-;&uMJi)W&CRPKvDUiCl34rMk+QnxczeV&wJwh}H`PUIniI8WN0O`B;%TZQnP`vu znC5tEL$a|W9a)>Gi$|1!th~$~h$EO&AO(qhN`dE9UCRTek)1(c;wZvLi`SK;&BWW)kt6FLj%^lXx*NHvH zDN`aXO&uLgtqqZQYu%JY{S;eOV)zzMMQ!FA<86v^Y%-2TpUl_z1&0zte4nHnBvcQB z%&$TU&Di`7GkVxQ9Je7ndNjPp6b|D>Mfuf81ic#+`!1vuy_fhrj+Y`u=o`(LVMlVj z5}A#@&5Rnx%Zl=OelCA9`eqOZ`IjLJ(ECWA!!chW$scQW%YTjZhj5%kW)S~0>389{ z4w;007by0ZAQk9ukzV{QLwF6s@J(jyuoF2x4>=0`cbw07j(HhJ{-NlPfFqH0$YS)5 zNgv|)1Y|V%-$wrXam=*e?a5aT^LI0a`N4o||4#Io#Q#j&KaRdX`aPi3*O!rb=FZAoR{m)1L0{RQu{w?TJ&>sV(KdncWp#L}NrTwMPjN$yB)b{T{ryYiG(e{@* z-4Fc^Q0&(r<>+saUfTb3gnAx+t+xNU=trVIukFwDkWarJ{xB&0=_|;w=pT_@&gWEQ zd`A1PKtG)LXSDqr&<{laHYoXBid3S%PkO1(D8jfMezUg!h3LnizpU+_KtBxq2cYz) zE0N>Tw`=&q%Df%nKOZzWHiqOBR?Y|OzHu^8M{TtCIqu&oo zdtHVsK>vXB(*8q@|DS66*I_dW`@2E0zXYj3f1C8;ZyB;D`gPj==b;~k{(EizX7oeR z9|cDu>yX9h|0KP%=TPJS$J+ii*zAk_H^CrsF)|nZPo$Uj_!6=Q`q#AmSEC<+{u^!o zv(OJle+ZQNyaHK-{&&(#`wun#f1&MPkIezte+!iQUW?2}|1;^O{m(@9M!!kh{{r-* z(f^?B--=$0{$F4i*?=5}{@Le@|0nS;<&7Z|vA+!rAQvHJ=&unkxb7 z|GDT#qW@Og|7`R_(7y*3AYVa_MgIrs<$Q)3|IcdsH(+xh_TK>|ze|xy^uLf^>eG+^ zZ)p4b@&89{{{%LNVgEyLSL90Mc=VJh%ng|Fxq-l#+)-viZlG{fZm!uqH;}ViZkgFD zH&9xb8!|F*J%m|Zf3V6Z#NE0%4VShQ?22*LuKUBD^p8Xjw zIEsLqz|tf?Fxd?9s(>n_8hN@pl{zk#N?n6|11V|4rXiKeZ%n0%kRIfBP57wA7gAW4 zN*#t&)$m3JWHa{NQT!*c;kXT-Bgs$7v~zza<8`R{edqpe;QW3ob(J~4@7&)FoZolu z?*?Aq?cCoDyuRDHzuURL+qu8{_xE>0?VgN@G_`)-{m0B(jXO9Bv6swcUpb5&=5ThG z1?(z!WzRW=_ghae`Q>!fB5hb zBMJ&e5_Tbk3A+*sHH^|QTEiF(W3$3;Sz%mO7@rl2J}2z{Ibn~_2^0Qx*wdbWPHt`< zVHhD_!*C5FvO+;tkox*pLF)2f1*zx%BuE?mCxIR`YV_zaW270S>3nnfX3B1!?B@8K z>fhsESO0_wd;W)Eum3O@Mt>oaj}##?8;nIpB6}i1WHchzoqHg8$T%d7?2QDFQOIy) zcSQbnLv}&-LPE$GqyU+K3`52vLj{>uM1m?@o#4YzE+>*wgu5zMxZ203Tpv5(YM-(g z%Ik#HhP(~uT*NLq0`<$i>K9 zy^B zc??;N{5O(^tVQM{TaW{gJCJ(h4P+d0EpiI-JTeP;7+H>dgoKd|$Z^OsNHOwlq!oD| z*&DeTITLvqIU4x^asjd(2_P3CWyllAMC2AEhP;A|LcWT85&0!D6}cZd2l)UQj$Do` zM1G1KgxrlZA#WqQBiA9PA-_lFAde!ekbff5bH9wtLw=0xk9-q}BY#46L%xQbjQj?f zi9CdKB7aAALDnNnkY6BEkZ&O^$e)qDkeiS*kUt<_K>iCkANdR!!x@YT3^!MUSA!>l zCxX8Qe+^Ctr-KiG4}cwD2lzMeZ(spf0DcAh3V1AdEckQq=injWA>h5>z2Mp4+2Fh2 zyWj+H0(b*>19&=kI`|^^B6uWtB=|V^ICw62F8B%f2`H=fFz{0FQm_)N1b+hl1UwKt z5WEw-6Knt*z&F7+!SUdD@ay2$!BfFg!QX z5gh!DGN`;cUyo=MjDYKWGONmS&8Hz704u{4jGG_gv>yaNC*#W zkaFZnWIyCKq!xJ%`MlugLyvx5^yueDkA9x?=;uq1+4-^ham#dg-iX|SoROhjg5d!7 zKeK|LkNrIC=U+eX%3Le+D|gPRKSLcD>d7#78tT+ zJxDJySjf&_=6ie;`OZNxey3*+&FSYn%`C z>zZnl+>MR3uQDCU_IRvCKG-((P0jI0yuCfqo@TAm)Y{QmU*A;Q6mLy(1GgnXvKkm} z^g3&~@7mH9OE%TuV0pY7AD;7bgV;RW{PB(>fC9#eNHm72|9?#@l68o|C{ydw_m$>-f(!Vl+OJ_BbPI2kM)!RG?t zX0QwF12=(@k=)~#c-~i2!o*O$7yiJiy@?0gCUUQzslFR50(&NpA~>z71)72U^m!3kIy8)&GUI~M0ij>wkoOQ^98W9fplOu zxKVgMpRm6=#b*?~5)Xb1_V9VfY?;LPyrT;2;d6|rFSjFcRJ;E=i9@w<@tf1Ur z*9F9b8!x0BVBuQgnS6V$;PVo}ucT5d!Rqy#KiCUy21~BQUhwObmuY?*7y*01*1(txDBp%!bn(JsEi3eo@?gdN0!t1Fwa2wbL_AwTFK*PBCoy3EEU^iGa zig>UD+{~D&61;_SgFWCzu<%yS6O4d8;6|_y>;`!p#q@#^u=F;{4{ipRf<3oWZsEU4 zI??Z>ykOVe@MG|I4}QVw`=~b-t6s1K>;o5o-QOmEuzEA?B|6AP(p23~KLoqJOL;-_ z5cLUe26;Tiw0#dhVD%%E1MC62z^cc{59|e>7M-`($xnMlzEAnbtHUw6mU;--( z0~1CL%iqYlH3?SM(M_)~7G*IB7tRkCE!wqUMShn#W{)Eeo<3<`Nhs+nkO*V=dd8{` z!Y@PaVoZPHNl^GCvhnSKyyUeGS^3WP)T^>?R)#l)LN5fuvfvUV-F?Uc<_4vNw&i>Z zEQNnj%2^gJTpOgQYeKFR+7tdQ_`SvN z+;HKQ!BfIT8$u_9BkOY(geR}dEen^d%_|GfUNbE8i@=C*Ng3}M2uBu%i!h!W&Mzb5 zI+E7mr-wN!A@yVZ%oRVFuFsh}&`)K!I`mL*M0hr?oi|LKw*>_&2j%C>>DhYNNNC#6m7gkK8!EHq58*Rie%{ZG$?Mq5+<$Dk9ka??A?;Wp?N~wm zUq4i-aAotKK|7WNcoD7;w!cw-YeJRbNbpLRIlay`i*1)W?6+b6+>Z8J!bRn_lS)5a zhuvjC#=6*P5dL=fZg|E?OU&7mlpUq4TVj{<$VEc)^J9 zWa=i}k)&JN@$f0>C$kpLlJpuRzp=Dy75x5EzZ#_74~1{cNu~ZQbMavPII|v0Lx&7r zkCg?XqohZa57NVfPY>E5sLL5-c^~=zZcHk*DBbS1-`aMcA1(<#HXah-R8>+jNE zUMF4O*i`CGjgeLquGheK!H?Gb*UR`?C;fYEPDOa~8p%JjKe9Oo5I1tZ&yl`*LMpXg2s^$j)8jjM!+_yo$43r(o)Y#j<5`9Z7$jT$4&o6o(pwp9EhD&(mz_ zAnkJ${AKWs)T?VB_8o(->$V>cJ|EiY*zTd$;qNZ?=$}e1w!M!Ne}j#~;HLC;BYhgS zt4X<@!%y{D{KBP-L+b~d!OK+{ZVQdg8?@iJa!J3L#I?pYo?qHU`u74E&%q~rLsvjm z$hF8hsnj{2pI>NfXvcy}%SyS|;pgKOsnnf0D7O9BZ>|SAJ+x0G9C9f9 zWUhUdNIDJD?<(M{yJ$D<2ODI*)^(WqdTlOC9sTZ|oOHQ4Io%(M-%Cgzxh$2s$vXvw zzY+c}c)E2u2>&2_H@sB055jMS-vlq02tEk^y4rKv=^*^4YM<$U2K?BO?9cJ@pjh|s zrz^u71Hn^SKHQF_vfwPYl$6W#ApRDUuITbq3b*MXd>wotJWs-=!=W6Vr}mEvYxAM~ zWFJL7Rq1@Bc3pkkhy7jn*-r=!GH*Qv-vj@Ea3{*tD|2vggKtxz7bEXsx0Gwu@k6ca zc0X_Tf%BPx?v?S%l##U$cjH3N>nN^)Cv%Mpq=WD$K}526DQ7c$5&QTno2bYY4cs3K0~SJ=ZLQ& zKH%!XUI&%Rb&zZ?bweQI_EYR;UzJLoD}ES~>t+AEE;K*A&tg-F=K-sbYkjv49>qew zlJuRjj_LK5%jZJ!aV!5dMAc!p?Hbl4DUZ#E`C*;R>$;z#w*~*0mC=F%E?);^U0JXc zhSH_CeDexU&SDl6)Mhb@3KkDcL>UNDPoGk*kH4n#4&#q`eUYu8I{vRHknO0wex1a< zleTM9DY@=*>k0eG%=LsGyf!brA09RMI=4s)JIHwI-#4x!p9PyzspV2YW_>PPsKsjj zUts5#`-s1bc(%9cP{Gkt@ZIpYYW=QbNcrp8V4Isrm~Q75up!s0gNlOSmUM))smu=} zxyO@#eJb^k`ngj4WbXU>ulL#a2VWj^+0>nq^wVYdTX{n&#W!w@nJ@Kwf;|^erT)(& zeiQNE5+Y-~o`aR!?Kr#Jv5VZ8N*%I8f3CpN^~fYHwqiG#dtb{3?yIQDwK-h3$iAv1 zcoqGFEB$mInp+U6pur~78#6c@XEBSj(z$8b?z<|u$5q0;w0q<{`un%dSNC%z!ShI; zdAXt+W2uKrNZ(C*`GI2UA#csFCF^t6ar2_|%HW2OY(Ezih~0hI&E_86yBz!al6`h3 z7P`&1_4*uk=2o3IY`rdK3lVI=%w04PE&e_gf7pH5=DR+$ChwGR>4xCCoVB^)(q2JI zJ5J)dsGECyS8~jKsop^FQa@eW>#Yjn3%U1KFY$IAE7$u0D_n=;c7Rrw%{PgC74|^{csS+UDpha+;zx(xe{A~rk2&KlTR13PPAXASJEft@w5vj%q7 zz|I=jSpz$3;QvDnq%`=fvvtpZ9(K!(8bS_#`ACU=2rAEu7sB-Gc_zYNzn(*Uq3N0C z(&uw5@tJy;>B`U}XeQv}MGFQ@PQM=H>m;Vo>+SN>yo8GtUsqhOxJmJt+0O2psz0i@ zMbW2oR>n-pv2N`%jdFCj>fE}tA)+@?xrJxLmY|Q5n74S{fCSGMX@tMWyiFbP z5rqvtzfV)H{PMhugwIs>=eb>Vd5%Q_{mGuMueUzc_tt{_Q}qeX{Qvs@J!iOj%Fd|p z%)$9nv>odemn*JSyjJlJ#fKHQC_b{D{cp zlWRI#lbwexZsLjDL}W(stm5fYrgmC#=0Q$3rkM9rC1W*UvfW{$KjQh!cyU8(XK_tu zQ*+&vraEJ_##l$ADXv@9N=k>xb{FHH(Y0o(L^YLHF>Q}G$0WTTwKXSAaZ_s(|0m-s z`M(~8xP&~0YKr5H(famSOFY_GM_R9$;#yuJ) zY%_9BYdT2E6R#~id#rW&pMcB*!w^4@J?)y$c$}2wT&KA-Tg(wZF_-Y^{XFZjME}D|K$b0;V|{u*4|{CX30d+L8=v0KkEL+p+o$*Qx<@~cV`77zo>%!UftxdZdOuHk zd|54h`MsUTlZlr(+3S9u_V|=$DCL(q+m~P6+RqVW4)^K(Jnped4JEy}%1++_=j%pH z{kr1OuPeU%KE1C$-aIoPyzG5^HA8FX&aXngQ`p85V?=k;3PWS)&bY8!jgUs}P-{4U`Qp*h4<-d+dN$-nU zs{0O)J##Zt8xt9*^4+X~>CGJRMo^Sz!81d4{@)=oGyltua_K#8mB}?D`1bSEqZ~*I zpH1(wi8iWtne&rfU)kwH=)SNg>JmnX%M3of$2W=0Oz-!V zZ)y52&ENa*={(B$Wv2J*cUR0M?D7c}BU!q1SMlY`Z)zqwiyD{SpQlge^Y!{C9EfF! zCp>EUgT1ckyt*_(@zGp=-fAOou%?%1kTXM;YV-DEFVk-GS&_f@8>1i zZ>P^a!@(n3@n7;61R9r}e@2oW4nvgAucMifA!ZA|J`UtV#;C)k2HQh9?0)v{5(65 z4;w#!4&KR;$fgt&(F^IZl_{fshxJ{!o7Hh!KO$TL~``6nYH#8XFpUdf>G&pRLo zxsD0(Enhzm474AgzHS`I7a2cp2l8Ar`tg_%5#n3O*+KeckZ<5+*RzbT9P>dc+g?7u z4GdC0GF}5_$NHIV`5o(L9=zmRI+25na5~2UzAfy_@5jwq%IE8O`SG|CUi|cA`5CJG zmsmfe%v-wNpxW?N{^xdtsjBihI{q7$-?9An!b`q=e|L8N|0g&YtloY;1pjMz@w4$j z=iyb&-mMQA{W;>|-vb8oFY~eWBOi1V>~}0cnFod6EE{fu{mukfsC-24=UioD-8Grm z`};EXI}OCivl7Dl`#~|?P{{2V;r)H3&(I}Qf`N?w-)&hQCx#!a{Bdg^Hr)~D-~hF6 zQ$C`6m-6R(zR2183Hox>!Teu61b-8}l)vp<=eSzk-2(==Yt(hHBYb(}Sr*~VzG|o) z@d?kXy)Wl8@Pn1-_iEo`A3`yvRL|=*<`a^ChnQT{9fE&n2>!z%_)p=b-3w*H zAw1x~6tRgBew*_4Sx(|2@Pn1}AhqxLgL9z6#!OYd^kv7}XZSdrMn*KEZHWOxc>AmthxN+y@(Ua8abQ}N-~5sz0$QFG@X|j^ z$2p=x?JrmRl5LLg<-A(?o+lmuvD)7VZ)DxfT7PeY7ymsvKOCm^4_QAu?q?piJoD|- z&d@#!&Ee0L?|I7c_L*xAU$Xv3n~$^BwYSwi@=Is$*Udg_&pdXhR)E51mfvw-F@k%TE7p;0VJ$n6>@ z-`AG%Z2p}iWSx-k!4Q5zd~PB3eOk|Q&ql&X%e&*u{|{FCk}k)FBMzs*4|cv^Q2Xv~ zXD9c6B%I*+x1Ihi2WFY)#l@a<*WbX^yLoBS;}|m{s+~D)yi+wcCp`SC8o>r zYLo$2tNpg~9I4Bsxn240-#Y$yP4g|~3zgrX{6orD{ml_qD*prJBig=?EB{mFd+v0^ zMCD(wyeb*+zS?hm(UGV&{9_3FF?p_i3(K9|4Qd~OAFREmsC}uIFym ze2*Ez&*CBY)6`F&&a3{ivw8^o7HhAC$bdEKr>D%3&uQF7U7AHY?oNXrEZ_Pe_zv~c zJ=gh}tVNLT=1D#D>bR&^ex34dUvh*FS96{6yoksK|M}&u%J-b7&T4!^B@aWiQkKIn`-|x<@>aKA5;Ej z%d3(BkE{J=-Pb*==li7c5iNg>rg=trUM6OP{VpR%FL*y%{$17nP35;~zxDO=k@DTz zKkavkNfR8d{rOMML9Y54p?u%-j`00(oB*gN?64)xJd6w5e{TXw!}RfVr--rDc`RXWnrYHk6~n=@@%zr#7x zrb|-Z0v7KeZ58OoyLiUJCaYz2eRZ;izSvYNvMVtAxunr?`qwbYc#_@Iiyqr95B%_jQqx6(`2X6v) zTHOGxMk7Ic)@dtO4s~D^mq(4ue068CshM;4<&!G3Z!~M?s9|+&bApPHqvoa>i&6W^ zt>QL1esKv;C$x4X+u9Rt#nZ5fCg=qqZ&j;v#?6UXokTPz5@!q6#U&#-s*lT0Sv0I( z(a!IpIb-{H1ySB)b(}{e(A`VEv?~&;zw>6OS^5n>>t>H^>S)|PI-&g`)7Cz(At_vU zbyFwkI%3`ESzTK%ji_ydvpSS$T}L9?$nVH8I(#;^dq?Fpa?vOcZRoV%V_nyd zR-ATR*^-6jX0=Qo38o72=C|h>T8%x!mW~D!tz3Nk+_J^dXFTeDhsH?F!vFQ=}rNs;9M&)&PB~;z=wszh|R?m@bNQ&3d>ZoXKZ#nFzGT) z^SM;UlNJ5%;nU(p+sU&b&WTyj>4`J9(-H--)0MG3X3&gIi1Sl?$HwE*!Q4ywIH=Q3 zsa2u9o1bLyWjVQ(siuXAPu~2;I2`D@VRfRuUVh<^x=T_wQgP9Geoe67Y=)oOs@j`c z;{9hk(+-N-=6I}~TB0aYpZ(F(smOHAOfQ~pR?oAq987bxi}CH%pPSUbjs<(ZMyGRM zPd+l;NOKdN^i1Ae$XN_@qwOPaDbMyoZ8xlrC+dyuI0KV4tWL(8o3Tijw4`{p&sO@* zw5ViP+t@xZolFY@89k3GUY^&|(eLi?;;H>g3ALzpC&rTt?2qhFHam=cgzvD@)Rarl zOS&?al5Hk6kJ^y7NHT{>w$Y5WoYhoH-nOd0oKw^OPF&SmTa}Qv0BQ!#Q(GrJRvAi| z(XX{-d?~dd?C|gRFYT$R85QaCbCX`fYP_e{H`l-XXh|=xt{Clh)#GfI`#!Vd7}x2R z(|4V^zpmuhGkq~!ZThxhTFY41t(_a5GDFz0WrtSSP3OV;HqZM=7KzWjKTFPQWh+N5@6EXoSRe7`zt ND%B#L#5*j_{{mx5FIWHo literal 0 HcmV?d00001 diff --git a/src/.deps/.gitignore b/src/.deps/.gitignore new file mode 100644 index 00000000..77147962 --- /dev/null +++ b/src/.deps/.gitignore @@ -0,0 +1,3 @@ +/*.dirstamp +/*.Po +/*.Tpo diff --git a/src/.gitignore b/src/.gitignore new file mode 100644 index 00000000..9aafd03d --- /dev/null +++ b/src/.gitignore @@ -0,0 +1,3 @@ +/*.dirstamp +/*.o +/*~ diff --git a/src/inc/gnuplot/gnuplot_i.hpp b/src/inc/gnuplot/gnuplot_i.hpp new file mode 100644 index 00000000..8909a222 --- /dev/null +++ b/src/inc/gnuplot/gnuplot_i.hpp @@ -0,0 +1,1992 @@ +//////////////////////////////////////////////////////////////////////////////// +/// +/// \brief A C++ interface to gnuplot. +/// +/// +/// The interface uses pipes and so won't run on a system that doesn't have +/// POSIX pipe support Tested on Windows (MinGW and Visual C++) and Linux (GCC) +/// +/// Version history: +/// 0. C interface +/// by N. Devillard (27/01/03) +/// 1. C++ interface: direct translation from the C interface +/// by Rajarshi Guha (07/03/03) +/// 2. corrections for Win32 compatibility +/// by V. Chyzhdzenka (20/05/03) +/// 3. some member functions added, corrections for Win32 and Linux +/// compatibility +/// by M. Burgis (10/03/08) +/// +/// Requirements: +/// * gnuplot has to be installed (http://www.gnuplot.info/download.html) +/// * for Windows: set Path-Variable for Gnuplot path +/// (e.g. C:/program files/gnuplot/bin) +/// or set Gnuplot path with: +/// Gnuplot::set_GNUPlotPath(const std::string &path); +/// +//////////////////////////////////////////////////////////////////////////////// + + +#ifndef _GNUPLOT_PIPES_H_ +#define _GNUPLOT_PIPES_H_ + + +#include +#include +#include +#include +#include // for std::ostringstream +#include +#include +#include // for getenv() +#include // for std::list + + +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) +//defined for 32 and 64-bit environments + #include // for _access(), _mktemp() + #define GP_MAX_TMP_FILES 27 // 27 temporary files it's Microsoft restriction +#elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) +//all UNIX-like OSs (Linux, *BSD, MacOSX, Solaris, ...) + #include // for access(), mkstemp() + #define GP_MAX_TMP_FILES 64 +#else + #error unsupported or unknown operating system +#endif + +//declare classes in global namespace + + +class GnuplotException : public std::runtime_error +{ + public: + GnuplotException(const std::string &msg) : std::runtime_error(msg){} +}; + + + +class Gnuplot +{ + private: + + //---------------------------------------------------------------------------------- + // member data + ///\brief pointer to the stream that can be used to write to the pipe + FILE *gnucmd; + ///\brief validation of gnuplot session + bool valid; + ///\brief true = 2d, false = 3d + bool two_dim; + ///\brief number of plots in session + int nplots; + ///\brief functions and data are displayed in a defined styles + std::string pstyle; + ///\brief interpolate and approximate data in defined styles (e.g. spline) + std::string smooth; + ///\brief list of created tmpfiles + std::vector tmpfile_list; + + //---------------------------------------------------------------------------------- + // static data + ///\brief number of all tmpfiles (number of tmpfiles restricted) + static int tmpfile_num; + ///\brief name of executed GNUPlot file + static std::string m_sGNUPlotFileName; + ///\brief gnuplot path + static std::string m_sGNUPlotPath; + ///\brief standart terminal, used by showonscreen + static std::string terminal_std; + + //---------------------------------------------------------------------------------- + // member functions (auxiliary functions) + // --------------------------------------------------- + ///\brief get_program_path(); and popen(); + /// + /// \param --> void + /// + /// \return <-- void + // --------------------------------------------------- + void init(); + // --------------------------------------------------- + ///\brief creates tmpfile and returns its name + /// + /// \param tmp --> points to the tempfile + /// + /// \return <-- the name of the tempfile + // --------------------------------------------------- + std::string create_tmpfile(std::ofstream &tmp); + + //---------------------------------------------------------------------------------- + ///\brief gnuplot path found? + /// + /// \param --- + /// + /// \return <-- found the gnuplot path (yes == true, no == false) + // --------------------------------------------------------------------------------- + static bool get_program_path(); + + // --------------------------------------------------------------------------------- + ///\brief checks if file is available + /// + /// \param filename --> the filename + /// \param mode --> the mode [optional,default value = 0] + /// + /// \return file exists (yes == true, no == false) + // --------------------------------------------------------------------------------- + bool file_available(const std::string &filename); + + // --------------------------------------------------------------------------------- + ///\brief checks if file exists + /// + /// \param filename --> the filename + /// \param mode --> the mode [optional,default value = 0] + /// + /// \return file exists (yes == true, no == false) + // --------------------------------------------------------------------------------- + static bool file_exists(const std::string &filename, int mode=0); + + public: + + // ---------------------------------------------------------------------------- + /// \brief optional function: set Gnuplot path manual + /// attention: for windows: path with slash '/' not backslash '\' + /// + /// \param path --> the gnuplot path + /// + /// \return true on success, false otherwise + // ---------------------------------------------------------------------------- + static bool set_GNUPlotPath(const std::string &path); + + + // ---------------------------------------------------------------------------- + /// optional: set standart terminal, used by showonscreen + /// defaults: Windows - win, Linux - x11, Mac - aqua + /// + /// \param type --> the terminal type + /// + /// \return --- + // ---------------------------------------------------------------------------- + static void set_terminal_std(const std::string &type); + + //----------------------------------------------------------------------------- + // constructors + // ---------------------------------------------------------------------------- + + + ///\brief set a style during construction + Gnuplot(const std::string &style = "points"); + + /// plot a single std::vector at one go + Gnuplot(const std::vector &x, + const std::string &title = "", + const std::string &style = "points", + const std::string &labelx = "x", + const std::string &labely = "y"); + + /// plot pairs std::vector at one go + Gnuplot(const std::vector &x, + const std::vector &y, + const std::string &title = "", + const std::string &style = "points", + const std::string &labelx = "x", + const std::string &labely = "y"); + + /// plot triples std::vector at one go + Gnuplot(const std::vector &x, + const std::vector &y, + const std::vector &z, + const std::string &title = "", + const std::string &style = "points", + const std::string &labelx = "x", + const std::string &labely = "y", + const std::string &labelz = "z"); + + /// destructor: needed to delete temporary files + ~Gnuplot(); + + + //---------------------------------------------------------------------------------- + + /// send a command to gnuplot + Gnuplot& cmd(const std::string &cmdstr); + // --------------------------------------------------------------------------------- + ///\brief Sends a command to an active gnuplot session, identical to cmd() + /// send a command to gnuplot using the << operator + /// + /// \param cmdstr --> the command string + /// + /// \return <-- a reference to the gnuplot object + // --------------------------------------------------------------------------------- + inline Gnuplot& operator<<(const std::string &cmdstr){ + cmd(cmdstr); + return(*this); + } + + + + //---------------------------------------------------------------------------------- + // show on screen or write to file + + /// sets terminal type to terminal_std + Gnuplot& showonscreen(); // window output is set by default (win/x11/aqua) + + /// saves a gnuplot session to a postscript file, filename without extension + Gnuplot& savetops(const std::string &filename = "gnuplot_output"); + + /// saves a gnuplot session to a PNG file, filename without extension + Gnuplot& savetopng(const std::string &filename = "gnuplot_output"); + + /// saves a gnuplot session to a PNG file, filename without extension + Gnuplot& savetopdf(const std::string &filename = "gnuplot_output"); + + //---------------------------------------------------------------------------------- + // set and unset + + /// set line style (some of these styles require additional information): + /// lines, points, linespoints, impulses, dots, steps, fsteps, histeps, + /// boxes, histograms, filledcurves + Gnuplot& set_style(const std::string &stylestr = "points"); + + /// interpolation and approximation of data, arguments: + /// csplines, bezier, acsplines (for data values > 0), sbezier, unique, frequency + /// (works only with plot_x, plot_xy, plotfile_x, plotfile_xy + /// (if smooth is set, set_style has no effekt on data plotting) + Gnuplot& set_smooth(const std::string &stylestr = "csplines"); + + // ---------------------------------------------------------------------- + /// \brief unset smooth + /// attention: smooth is not set by default + /// + /// \param --- + /// + /// \return <-- a reference to a gnuplot object + // ---------------------------------------------------------------------- + inline Gnuplot& unset_smooth(){ smooth = ""; return *this;}; + + + /// scales the size of the points used in plots + Gnuplot& set_pointsize(const double pointsize = 1.0); + + /// turns grid on/off + inline Gnuplot& set_grid() {cmd("set grid");return *this;}; + /// grid is not set by default + inline Gnuplot& unset_grid(){cmd("unset grid");return *this;}; + + // ----------------------------------------------- + /// set the mulitplot mode + /// + /// \param --- + /// + /// \return <-- reference to the gnuplot object + // ----------------------------------------------- + inline Gnuplot& set_multiplot(){cmd("set multiplot") ;return *this;}; + + // ----------------------------------------------- + /// unsets the mulitplot mode + /// + /// \param --- + /// + /// \return <-- reference to the gnuplot object + // ----------------------------------------------- + inline Gnuplot& unset_multiplot(){cmd("unset multiplot");return *this;}; + + + + /// set sampling rate of functions, or for interpolating data + Gnuplot& set_samples(const int samples = 100); + /// set isoline density (grid) for plotting functions as surfaces (for 3d plots) + Gnuplot& set_isosamples(const int isolines = 10); + + // -------------------------------------------------------------------------- + /// enables/disables hidden line removal for surface plotting (for 3d plot) + /// + /// \param --- + /// + /// \return <-- reference to the gnuplot object + // -------------------------------------------------------------------------- + Gnuplot& set_hidden3d(){cmd("set hidden3d");return *this;}; + + // --------------------------------------------------------------------------- + /// hidden3d is not set by default + /// + /// \param --- + /// + /// \return <-- reference to the gnuplot object + // --------------------------------------------------------------------------- + inline Gnuplot& unset_hidden3d(){cmd("unset hidden3d"); return *this;}; + + /// enables/disables contour drawing for surfaces (for 3d plot) + /// base, surface, both + Gnuplot& set_contour(const std::string &position = "base"); + // -------------------------------------------------------------------------- + /// contour is not set by default, it disables contour drawing for surfaces + /// + /// \param --- + /// + /// \return <-- reference to the gnuplot object + // ------------------------------------------------------------------ + inline Gnuplot& unset_contour(){cmd("unset contour");return *this;}; + + // ------------------------------------------------------------ + /// enables/disables the display of surfaces (for 3d plot) + /// + /// \param --- + /// + /// \return <-- reference to the gnuplot object + // ------------------------------------------------------------------ + inline Gnuplot& set_surface(){cmd("set surface");return *this;}; + + // ---------------------------------------------------------- + /// surface is set by default, + /// it disables the display of surfaces (for 3d plot) + /// + /// \param --- + /// + /// \return <-- reference to the gnuplot object + // ------------------------------------------------------------------ + inline Gnuplot& unset_surface(){cmd("unset surface"); return *this;} + + + /// switches legend on/off + /// position: inside/outside, left/center/right, top/center/bottom, nobox/box + Gnuplot& set_legend(const std::string &position = "default"); + + // ------------------------------------------------------------------ + /// \brief Switches legend off + /// attention:legend is set by default + /// + /// \param --- + /// + /// \return <-- reference to the gnuplot object + // ------------------------------------------------------------------ + inline Gnuplot& unset_legend(){cmd("unset key"); return *this;} + + // ----------------------------------------------------------------------- + /// \brief sets and clears the title of a gnuplot session + /// + /// \param title --> the title of the plot [optional, default == ""] + /// + /// \return <-- reference to the gnuplot object + // ----------------------------------------------------------------------- + inline Gnuplot& set_title(const std::string &title = "") + { + std::string cmdstr; + cmdstr = "set title \""; + cmdstr+=title; + cmdstr+="\""; + *this<set_title();return *this;} + + + /// set x axis label + Gnuplot& set_ylabel(const std::string &label = "x"); + /// set y axis label + Gnuplot& set_xlabel(const std::string &label = "y"); + /// set z axis label + Gnuplot& set_zlabel(const std::string &label = "z"); + + /// set axis - ranges + Gnuplot& set_xrange(const double iFrom, + const double iTo); + /// set y-axis - ranges + Gnuplot& set_yrange(const double iFrom, + const double iTo); + /// set z-axis - ranges + Gnuplot& set_zrange(const double iFrom, + const double iTo); + /// autoscale axis (set by default) of xaxis + /// + /// \param --- + /// + /// \return <-- reference to the gnuplot object + // ----------------------------------------------- + inline Gnuplot& set_xautoscale(){cmd("set xrange restore");cmd("set autoscale x");return *this;}; + + // ----------------------------------------------- + /// autoscale axis (set by default) of yaxis + /// + /// \param --- + /// + /// \return <-- reference to the gnuplot object + // ----------------------------------------------- + inline Gnuplot& set_yautoscale(){cmd("set yrange restore");cmd("set autoscale y");return *this;}; + + // ----------------------------------------------- + /// autoscale axis (set by default) of zaxis + /// + /// \param --- + /// + /// \return <-- reference to the gnuplot object + // ----------------------------------------------- + inline Gnuplot& set_zautoscale(){cmd("set zrange restore");cmd("set autoscale z");return *this;}; + + + /// turns on/off log scaling for the specified xaxis (logscale is not set by default) + Gnuplot& set_xlogscale(const double base = 10); + /// turns on/off log scaling for the specified yaxis (logscale is not set by default) + Gnuplot& set_ylogscale(const double base = 10); + /// turns on/off log scaling for the specified zaxis (logscale is not set by default) + Gnuplot& set_zlogscale(const double base = 10); + + // ----------------------------------------------- + /// turns off log scaling for the x axis + /// + /// \param --- + /// + /// \return <-- reference to the gnuplot object + // ----------------------------------------------- + inline Gnuplot& unset_xlogscale(){cmd("unset logscale x"); return *this;}; + + // ----------------------------------------------- + /// turns off log scaling for the y axis + /// + /// \param --- + /// + /// \return <-- reference to the gnuplot object + // ----------------------------------------------- + inline Gnuplot& unset_ylogscale(){cmd("unset logscale y"); return *this;}; + + // ----------------------------------------------- + /// turns off log scaling for the z axis + /// + /// \param --- + /// + /// \return <-- reference to the gnuplot object + // ----------------------------------------------- + inline Gnuplot& unset_zlogscale(){cmd("unset logscale z"); return *this;}; + + + /// set palette range (autoscale by default) + Gnuplot& set_cbrange(const double iFrom, const double iTo); + + + //---------------------------------------------------------------------------------- + // plot + + /// plot a single std::vector: x + /// from file + Gnuplot& plotfile_x(const std::string &filename, + const unsigned int column = 1, + const std::string &title = ""); + /// from std::vector + template + Gnuplot& plot_x(const X& x, const std::string &title = ""); + + + /// plot x,y pairs: x y + /// from file + Gnuplot& plotfile_xy(const std::string &filename, + const unsigned int column_x = 1, + const unsigned int column_y = 2, + const std::string &title = ""); + /// from data + template + Gnuplot& plot_xy(const X& x, const Y& y, const std::string &title = ""); + + + /// plot x,y pairs with dy errorbars: x y dy + /// from file + Gnuplot& plotfile_xy_err(const std::string &filename, + const unsigned int column_x = 1, + const unsigned int column_y = 2, + const unsigned int column_dy = 3, + const std::string &title = ""); + /// from data + template + Gnuplot& plot_xy_err(const X &x, const Y &y, const E &dy, + const std::string &title = ""); + + + /// plot x,y,z triples: x y z + /// from file + Gnuplot& plotfile_xyz(const std::string &filename, + const unsigned int column_x = 1, + const unsigned int column_y = 2, + const unsigned int column_z = 3, + const std::string &title = ""); + /// from std::vector + template + Gnuplot& plot_xyz(const X &x, + const Y &y, + const Z &z, + const std::string &title = ""); + + + + /// plot an equation of the form: y = ax + b, you supply a and b + Gnuplot& plot_slope(const double a, + const double b, + const std::string &title = ""); + + + /// plot an equation supplied as a std::string y=f(x), write only the function f(x) not y= + /// the independent variable has to be x + /// binary operators: ** exponentiation, * multiply, / divide, + add, - substract, % modulo + /// unary operators: - minus, ! factorial + /// elementary functions: rand(x), abs(x), sgn(x), ceil(x), floor(x), int(x), imag(x), real(x), arg(x), + /// sqrt(x), exp(x), log(x), log10(x), sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x), + /// sinh(x), cosh(x), tanh(x), asinh(x), acosh(x), atanh(x) + /// special functions: erf(x), erfc(x), inverf(x), gamma(x), igamma(a,x), lgamma(x), ibeta(p,q,x), + /// besj0(x), besj1(x), besy0(x), besy1(x), lambertw(x) + /// statistical fuctions: norm(x), invnorm(x) + Gnuplot& plot_equation(const std::string &equation, + const std::string &title = ""); + + /// plot an equation supplied as a std::string z=f(x,y), write only the function f(x,y) not z= + /// the independent variables have to be x and y + Gnuplot& plot_equation3d(const std::string &equation, + const std::string &title = ""); + + + /// plot image + Gnuplot& plot_image(const unsigned char *ucPicBuf, + const unsigned int iWidth, + const unsigned int iHeight, + const std::string &title = ""); + + + //---------------------------------------------------------------------------------- + ///\brief replot repeats the last plot or splot command. + /// this can be useful for viewing a plot with different set options, + /// or when generating the same plot for several devices (showonscreen, savetops) + /// + /// \param --- + /// + /// \return --- + //---------------------------------------------------------------------------------- + inline Gnuplot& replot(void){if (nplots > 0) cmd("replot");return *this;}; + + /// resets a gnuplot session (next plot will erase previous ones) + Gnuplot& reset_plot(); + + /// resets a gnuplot session and sets all variables to default + Gnuplot& reset_all(); + + /// deletes temporary files + void remove_tmpfiles(); + + // ------------------------------------------------------------------- + /// \brief Is the gnuplot session valid ?? + /// + /// + /// \param --- + /// + /// \return true if valid, false if not + // ------------------------------------------------------------------- + inline bool is_valid(){return(valid);}; + +}; + +//------------------------------------------------------------------------------ +// +// initialize static data +// +int Gnuplot::tmpfile_num = 0; + +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) +std::string Gnuplot::m_sGNUPlotFileName = "pgnuplot.exe"; +std::string Gnuplot::m_sGNUPlotPath = "C:/program files/gnuplot/bin/"; +#elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) +std::string Gnuplot::m_sGNUPlotFileName = "gnuplot"; +std::string Gnuplot::m_sGNUPlotPath = "/usr/local/bin/"; +#endif + +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) +std::string Gnuplot::terminal_std = "windows"; +#elif ( defined(unix) || defined(__unix) || defined(__unix__) ) && !defined(__APPLE__) +std::string Gnuplot::terminal_std = "x11"; +#elif defined(__APPLE__) +std::string Gnuplot::terminal_std = "aqua"; +#endif + +//------------------------------------------------------------------------------ +// +// constructor: set a style during construction +// +inline Gnuplot::Gnuplot(const std::string &style) + :gnucmd(NULL) ,valid(false) ,two_dim(false) ,nplots(0) + +{ + init(); + set_style(style); +} + +//------------------------------------------------------------------------------ +// +// constructor: open a new session, plot a signal (x) +// +inline Gnuplot::Gnuplot(const std::vector &x, + const std::string &title, + const std::string &style, + const std::string &labelx, + const std::string &labely) + :gnucmd(NULL) ,valid(false) ,two_dim(false) ,nplots(0) +{ + init(); + + set_style(style); + set_xlabel(labelx); + set_ylabel(labely); + + plot_x(x,title); +} + + +//------------------------------------------------------------------------------ +// +// constructor: open a new session, plot a signal (x,y) +// +inline Gnuplot::Gnuplot(const std::vector &x, + const std::vector &y, + const std::string &title, + const std::string &style, + const std::string &labelx, + const std::string &labely) + :gnucmd(NULL) ,valid(false) ,two_dim(false) ,nplots(0) +{ + init(); + + set_style(style); + set_xlabel(labelx); + set_ylabel(labely); + + plot_xy(x,y,title); +} + + +//------------------------------------------------------------------------------ +// +// constructor: open a new session, plot a signal (x,y,z) +// +inline Gnuplot::Gnuplot(const std::vector &x, + const std::vector &y, + const std::vector &z, + const std::string &title, + const std::string &style, + const std::string &labelx, + const std::string &labely, + const std::string &labelz) + :gnucmd(NULL) ,valid(false) ,two_dim(false) ,nplots(0) +{ + init(); + + set_style(style); + set_xlabel(labelx); + set_ylabel(labely); + set_zlabel(labelz); + + plot_xyz(x,y,z,title); +} + + +//------------------------------------------------------------------------------ +// +/// Plots a 2d graph from a list of doubles: x +// +template +Gnuplot& Gnuplot::plot_x(const X& x, const std::string &title) +{ + if (x.size() == 0) + { + throw GnuplotException("std::vector too small"); + return *this; + } + + std::ofstream tmp; + std::string name = create_tmpfile(tmp); + if (name == "") + return *this; + + // + // write the data to file + // + for (unsigned int i = 0; i < x.size(); i++) + tmp << x[i] << std::endl; + + tmp.flush(); + tmp.close(); + + + plotfile_x(name, 1, title); + + return *this; +} + + +//------------------------------------------------------------------------------ +// +/// Plots a 2d graph from a list of doubles: x y +// +template +Gnuplot& Gnuplot::plot_xy(const X& x, const Y& y, const std::string &title) +{ + if (x.size() == 0 || y.size() == 0) + { + throw GnuplotException("std::vectors too small"); + return *this; + } + + if (x.size() != y.size()) + { + throw GnuplotException("Length of the std::vectors differs"); + return *this; + } + + + std::ofstream tmp; + std::string name = create_tmpfile(tmp); + if (name == "") + return *this; + + // + // write the data to file + // + for (unsigned int i = 0; i < x.size(); i++) + tmp << x[i] << " " << y[i] << std::endl; + + tmp.flush(); + tmp.close(); + + + plotfile_xy(name, 1, 2, title); + + return *this; +} + +///----------------------------------------------------------------------------- +/// +/// plot x,y pairs with dy errorbars +/// +template +Gnuplot& Gnuplot::plot_xy_err(const X &x, + const Y &y, + const E &dy, + const std::string &title) +{ + if (x.size() == 0 || y.size() == 0 || dy.size() == 0) + { + throw GnuplotException("std::vectors too small"); + return *this; + } + + if (x.size() != y.size() || y.size() != dy.size()) + { + throw GnuplotException("Length of the std::vectors differs"); + return *this; + } + + + std::ofstream tmp; + std::string name = create_tmpfile(tmp); + if (name == "") + return *this; + + // + // write the data to file + // + for (unsigned int i = 0; i < x.size(); i++) + tmp << x[i] << " " << y[i] << " " << dy[i] << std::endl; + + tmp.flush(); + tmp.close(); + + + // Do the actual plot + plotfile_xy_err(name, 1, 2, 3, title); + + return *this; +} + + +//------------------------------------------------------------------------------ +// +// Plots a 3d graph from a list of doubles: x y z +// +template +Gnuplot& Gnuplot::plot_xyz(const X &x, + const Y &y, + const Z &z, + const std::string &title) +{ + if (x.size() == 0 || y.size() == 0 || z.size() == 0) + { + throw GnuplotException("std::vectors too small"); + return *this; + } + + if (x.size() != y.size() || x.size() != z.size()) + { + throw GnuplotException("Length of the std::vectors differs"); + return *this; + } + + + std::ofstream tmp; + std::string name = create_tmpfile(tmp); + if (name == "") + return *this; + + // + // write the data to file + // + for (unsigned int i = 0; i < x.size(); i++) + tmp << x[i] << " " << y[i] << " " << z[i] < +void stringtok (Container &container, + std::string const &in, + const char * const delimiters = " \t\n") +{ + const std::string::size_type len = in.length(); + std::string::size_type i = 0; + + while ( i < len ) + { + // eat leading whitespace + i = in.find_first_not_of (delimiters, i); + + if (i == std::string::npos) + return; // nothing left but white space + + // find the end of the token + std::string::size_type j = in.find_first_of (delimiters, i); + + // push token + if (j == std::string::npos) + { + container.push_back (in.substr(i)); + return; + } + else + container.push_back (in.substr(i, j-i)); + + // set up for next loop + i = j + 1; + } + + return; +} + + +//------------------------------------------------------------------------------ +// +// Destructor: needed to delete temporary files +// +Gnuplot::~Gnuplot() +{ +// remove_tmpfiles(); + + // A stream opened by popen() should be closed by pclose() +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) + if (_pclose(gnucmd) == -1) +#elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) + if (pclose(gnucmd) == -1) +#endif + throw GnuplotException("Problem closing communication to gnuplot"); +} + + +//------------------------------------------------------------------------------ +// +// Resets a gnuplot session (next plot will erase previous ones) +// +Gnuplot& Gnuplot::reset_plot() +{ +// remove_tmpfiles(); + + nplots = 0; + + return *this; +} + + +//------------------------------------------------------------------------------ +// +// resets a gnuplot session and sets all varibles to default +// +Gnuplot& Gnuplot::reset_all() +{ +// remove_tmpfiles(); + + nplots = 0; + cmd("reset"); + cmd("clear"); + pstyle = "points"; + smooth = ""; + showonscreen(); + + return *this; +} + + +//------------------------------------------------------------------------------ +// +// Change the plotting style of a gnuplot session +// +Gnuplot& Gnuplot::set_style(const std::string &stylestr) +{ + if (stylestr.find("lines") == std::string::npos && + stylestr.find("points") == std::string::npos && + stylestr.find("linespoints") == std::string::npos && + stylestr.find("impulses") == std::string::npos && + stylestr.find("dots") == std::string::npos && + stylestr.find("steps") == std::string::npos && + stylestr.find("fsteps") == std::string::npos && + stylestr.find("histeps") == std::string::npos && + stylestr.find("boxes") == std::string::npos && // 1-4 columns of data are required + stylestr.find("filledcurves") == std::string::npos && + stylestr.find("histograms") == std::string::npos ) //only for one data column +// stylestr.find("labels") == std::string::npos && // 3 columns of data are required +// stylestr.find("xerrorbars") == std::string::npos && // 3-4 columns of data are required +// stylestr.find("xerrorlines") == std::string::npos && // 3-4 columns of data are required +// stylestr.find("errorbars") == std::string::npos && // 3-4 columns of data are required +// stylestr.find("errorlines") == std::string::npos && // 3-4 columns of data are required +// stylestr.find("yerrorbars") == std::string::npos && // 3-4 columns of data are required +// stylestr.find("yerrorlines") == std::string::npos && // 3-4 columns of data are required +// stylestr.find("boxerrorbars") == std::string::npos && // 3-5 columns of data are required +// stylestr.find("xyerrorbars") == std::string::npos && // 4,6,7 columns of data are required +// stylestr.find("xyerrorlines") == std::string::npos && // 4,6,7 columns of data are required +// stylestr.find("boxxyerrorbars") == std::string::npos && // 4,6,7 columns of data are required +// stylestr.find("financebars") == std::string::npos && // 5 columns of data are required +// stylestr.find("candlesticks") == std::string::npos && // 5 columns of data are required +// stylestr.find("vectors") == std::string::npos && +// stylestr.find("image") == std::string::npos && +// stylestr.find("rgbimage") == std::string::npos && +// stylestr.find("pm3d") == std::string::npos ) + { + pstyle = std::string("points"); + } + else + { + pstyle = stylestr; + } + + return *this; +} + + +//------------------------------------------------------------------------------ +// +// smooth: interpolation and approximation of data +// +Gnuplot& Gnuplot::set_smooth(const std::string &stylestr) +{ + if (stylestr.find("unique") == std::string::npos && + stylestr.find("frequency") == std::string::npos && + stylestr.find("csplines") == std::string::npos && + stylestr.find("acsplines") == std::string::npos && + stylestr.find("bezier") == std::string::npos && + stylestr.find("sbezier") == std::string::npos ) + { + smooth = ""; + } + else + { + smooth = stylestr; + } + + return *this; +} + + +//------------------------------------------------------------------------------ +// +// sets terminal type to windows / x11 +// +Gnuplot& Gnuplot::showonscreen() +{ + cmd("set output"); + cmd("set terminal " + Gnuplot::terminal_std); + + return *this; +} + +//------------------------------------------------------------------------------ +// +// saves a gnuplot session to a postscript file +// +Gnuplot& Gnuplot::savetops(const std::string &filename) +{ + cmd("set terminal postscript color"); + + std::ostringstream cmdstr; + cmdstr << "set output \"" << filename << ".ps\""; + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// +// saves a gnuplot session to a PNG file +// +Gnuplot& Gnuplot::savetopng(const std::string &filename) +{ + cmd("set terminal png"); + + std::ostringstream cmdstr; + cmdstr << "set output \"" << filename << ".png\""; + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// +// saves a gnuplot session to a PDF file +// +Gnuplot& Gnuplot::savetopdf(const std::string &filename) +{ + cmd("set terminal pdf color"); + + std::ostringstream cmdstr; + cmdstr << "set output \"" << filename << ".pdf\""; + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// +// Switches legend on +// +Gnuplot& Gnuplot::set_legend(const std::string &position) +{ + std::ostringstream cmdstr; + cmdstr << "set key " << position; + + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// +// turns on log scaling for the x axis +// +Gnuplot& Gnuplot::set_xlogscale(const double base) +{ + std::ostringstream cmdstr; + + cmdstr << "set logscale x " << base; + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// +// turns on log scaling for the y axis +// +Gnuplot& Gnuplot::set_ylogscale(const double base) +{ + std::ostringstream cmdstr; + + cmdstr << "set logscale y " << base; + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// +// turns on log scaling for the z axis +// +Gnuplot& Gnuplot::set_zlogscale(const double base) +{ + std::ostringstream cmdstr; + + cmdstr << "set logscale z " << base; + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// +// scales the size of the points used in plots +// +Gnuplot& Gnuplot::set_pointsize(const double pointsize) +{ + std::ostringstream cmdstr; + cmdstr << "set pointsize " << pointsize; + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// +// set isoline density (grid) for plotting functions as surfaces +// +Gnuplot& Gnuplot::set_samples(const int samples) +{ + std::ostringstream cmdstr; + cmdstr << "set samples " << samples; + cmd(cmdstr.str()); + + return *this; +} + + +//------------------------------------------------------------------------------ +// +// set isoline density (grid) for plotting functions as surfaces +// +Gnuplot& Gnuplot::set_isosamples(const int isolines) +{ + std::ostringstream cmdstr; + cmdstr << "set isosamples " << isolines; + cmd(cmdstr.str()); + + return *this; +} + + +//------------------------------------------------------------------------------ +// +// enables contour drawing for surfaces set contour {base | surface | both} +// + +Gnuplot& Gnuplot::set_contour(const std::string &position) +{ + if (position.find("base") == std::string::npos && + position.find("surface") == std::string::npos && + position.find("both") == std::string::npos ) + { + cmd("set contour base"); + } + else + { + cmd("set contour " + position); + } + + return *this; +} + +//------------------------------------------------------------------------------ +// +// set labels +// +// set the xlabel +Gnuplot& Gnuplot::set_xlabel(const std::string &label) +{ + std::ostringstream cmdstr; + + cmdstr << "set xlabel \"" << label << "\""; + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// set the ylabel +// +Gnuplot& Gnuplot::set_ylabel(const std::string &label) +{ + std::ostringstream cmdstr; + + cmdstr << "set ylabel \"" << label << "\""; + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// set the zlabel +// +Gnuplot& Gnuplot::set_zlabel(const std::string &label) +{ + std::ostringstream cmdstr; + + cmdstr << "set zlabel \"" << label << "\""; + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// +// set range +// +// set the xrange +Gnuplot& Gnuplot::set_xrange(const double iFrom, + const double iTo) +{ + std::ostringstream cmdstr; + + cmdstr << "set xrange[" << iFrom << ":" << iTo << "]"; + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// set the yrange +// +Gnuplot& Gnuplot::set_yrange(const double iFrom, + const double iTo) +{ + std::ostringstream cmdstr; + + cmdstr << "set yrange[" << iFrom << ":" << iTo << "]"; + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// set the zrange +// +Gnuplot& Gnuplot::set_zrange(const double iFrom, + const double iTo) +{ + std::ostringstream cmdstr; + + cmdstr << "set zrange[" << iFrom << ":" << iTo << "]"; + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// +// set the palette range +// +Gnuplot& Gnuplot::set_cbrange(const double iFrom, + const double iTo) +{ + std::ostringstream cmdstr; + + cmdstr << "set cbrange[" << iFrom << ":" << iTo << "]"; + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// +// Plots a linear equation y=ax+b (where you supply the +// slope a and intercept b) +// +Gnuplot& Gnuplot::plot_slope(const double a, + const double b, + const std::string &title) +{ + std::ostringstream cmdstr; + // + // command to be sent to gnuplot + // + if (nplots > 0 && two_dim == true) + cmdstr << "replot "; + else + cmdstr << "plot "; + + cmdstr << a << " * x + " << b << " title \""; + + if (title == "") + cmdstr << "f(x) = " << a << " * x + " << b; + else + cmdstr << title; + + cmdstr << "\" with " << pstyle; + + // + // Do the actual plot + // + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// +// Plot an equation supplied as a std::string y=f(x) (only f(x) expected) +// +Gnuplot& Gnuplot::plot_equation(const std::string &equation, + const std::string &title) +{ + std::ostringstream cmdstr; + // + // command to be sent to gnuplot + // + if (nplots > 0 && two_dim == true) + cmdstr << "replot "; + else + cmdstr << "plot "; + + cmdstr << equation << " title \""; + + if (title == "") + cmdstr << "f(x) = " << equation; + else + cmdstr << title; + + cmdstr << "\" with " << pstyle; + + // + // Do the actual plot + // + cmd(cmdstr.str()); + + return *this; +} + +//------------------------------------------------------------------------------ +// +// plot an equation supplied as a std::string y=(x) +// +Gnuplot& Gnuplot::plot_equation3d(const std::string &equation, + const std::string &title) +{ + std::ostringstream cmdstr; + // + // command to be sent to gnuplot + // + if (nplots > 0 && two_dim == false) + cmdstr << "replot "; + else + cmdstr << "splot "; + + cmdstr << equation << " title \""; + + if (title == "") + cmdstr << "f(x,y) = " << equation; + else + cmdstr << title; + + cmdstr << "\" with " << pstyle; + + // + // Do the actual plot + // + cmd(cmdstr.str()); + + return *this; +} + + +//------------------------------------------------------------------------------ +// +// Plots a 2d graph from a list of doubles (x) saved in a file +// +Gnuplot& Gnuplot::plotfile_x(const std::string &filename, + const unsigned int column, + const std::string &title) +{ + // + // check if file exists + // + file_available(filename); + + + std::ostringstream cmdstr; + // + // command to be sent to gnuplot + // + if (nplots > 0 && two_dim == true) + cmdstr << "replot "; + else + cmdstr << "plot "; + + cmdstr << "\"" << filename << "\" using " << column; + + if (title == "") + cmdstr << " notitle "; + else + cmdstr << " title \"" << title << "\" "; + + if(smooth == "") + cmdstr << "with " << pstyle; + else + cmdstr << "smooth " << smooth; + + // + // Do the actual plot + // + cmd(cmdstr.str()); //nplots++; two_dim = true; already in cmd(); + + return *this; +} + + + +//------------------------------------------------------------------------------ +// +// Plots a 2d graph from a list of doubles (x y) saved in a file +// +Gnuplot& Gnuplot::plotfile_xy(const std::string &filename, + const unsigned int column_x, + const unsigned int column_y, + const std::string &title) +{ + // + // check if file exists + // + file_available(filename); + + + std::ostringstream cmdstr; + // + // command to be sent to gnuplot + // + if (nplots > 0 && two_dim == true) + cmdstr << "replot "; + else + cmdstr << "plot "; + + cmdstr << "\"" << filename << "\" using " << column_x << ":" << column_y; + + if (title == "") + cmdstr << " notitle "; + else + cmdstr << " title \"" << title << "\" "; + + if(smooth == "") + cmdstr << "with " << pstyle; + else + cmdstr << "smooth " << smooth; + + // + // Do the actual plot + // + cmd(cmdstr.str()); + + return *this; +} + + +//------------------------------------------------------------------------------ +// +// Plots a 2d graph with errorbars from a list of doubles (x y dy) in a file +// +Gnuplot& Gnuplot::plotfile_xy_err(const std::string &filename, + const unsigned int column_x, + const unsigned int column_y, + const unsigned int column_dy, + const std::string &title) +{ + // + // check if file exists + // + file_available(filename); + + std::ostringstream cmdstr; + // + // command to be sent to gnuplot + // + if (nplots > 0 && two_dim == true) + cmdstr << "replot "; + else + cmdstr << "plot "; + + cmdstr << "\"" << filename << "\" using " + << column_x << ":" << column_y << ":" << column_dy + << " with errorbars "; + + if (title == "") + cmdstr << " notitle "; + else + cmdstr << " title \"" << title << "\" "; + + // + // Do the actual plot + // + cmd(cmdstr.str()); + + return *this; +} + + +//------------------------------------------------------------------------------ +// +// Plots a 3d graph from a list of doubles (x y z) saved in a file +// +Gnuplot& Gnuplot::plotfile_xyz(const std::string &filename, + const unsigned int column_x, + const unsigned int column_y, + const unsigned int column_z, + const std::string &title) +{ + // + // check if file exists + // + file_available(filename); + + std::ostringstream cmdstr; + // + // command to be sent to gnuplot + // + if (nplots > 0 && two_dim == false) + cmdstr << "replot "; + else + cmdstr << "splot "; + + cmdstr << "\"" << filename << "\" using " << column_x << ":" << column_y + << ":" << column_z; + + if (title == "") + cmdstr << " notitle with " << pstyle; + else + cmdstr << " title \"" << title << "\" with " << pstyle; + + // + // Do the actual plot + // + cmd(cmdstr.str()); + + return *this; +} + + + +//------------------------------------------------------------------------------ +// +/// * note that this function is not valid for versions of GNUPlot below 4.2 +// +Gnuplot& Gnuplot::plot_image(const unsigned char * ucPicBuf, + const unsigned int iWidth, + const unsigned int iHeight, + const std::string &title) +{ + std::ofstream tmp; + std::string name = create_tmpfile(tmp); + if (name == "") + return *this; + + // + // write the data to file + // + int iIndex = 0; + for(int iRow = 0; iRow < iHeight; iRow++) + { + for(int iColumn = 0; iColumn < iWidth; iColumn++) + { + tmp << iColumn << " " << iRow << " " + << static_cast(ucPicBuf[iIndex++]) << std::endl; + } + } + + tmp.flush(); + tmp.close(); + + + std::ostringstream cmdstr; + // + // command to be sent to gnuplot + // + if (nplots > 0 && two_dim == true) + cmdstr << "replot "; + else + cmdstr << "plot "; + + if (title == "") + cmdstr << "\"" << name << "\" with image"; + else + cmdstr << "\"" << name << "\" title \"" << title << "\" with image"; + + // + // Do the actual plot + // + cmd(cmdstr.str()); + + return *this; +} + + + +//------------------------------------------------------------------------------ +// +// Sends a command to an active gnuplot session +// +Gnuplot& Gnuplot::cmd(const std::string &cmdstr) +{ + if( !(valid) ) + { + return *this; + } + + + // int fputs ( const char * str, FILE * stream ); + // writes the string str to the stream. + // The function begins copying from the address specified (str) until it + // reaches the terminating null character ('\0'). This final + // null-character is not copied to the stream. + fputs( (cmdstr+"\n").c_str(), gnucmd ); + + // int fflush ( FILE * stream ); + // If the given stream was open for writing and the last i/o operation was + // an output operation, any unwritten data in the output buffer is written + // to the file. If the argument is a null pointer, all open files are + // flushed. The stream remains open after this call. + fflush(gnucmd); + + + if( cmdstr.find("replot") != std::string::npos ) + { + return *this; + } + else if( cmdstr.find("splot") != std::string::npos ) + { + two_dim = false; + nplots++; + } + else if( cmdstr.find("plot") != std::string::npos ) + { + two_dim = true; + nplots++; + } + + return *this; +} + + + +//------------------------------------------------------------------------------ +// +// Opens up a gnuplot session, ready to receive commands +// +void Gnuplot::init() +{ + // char * getenv ( const char * name ); get value of environment variable + // Retrieves a C string containing the value of the environment variable + // whose name is specified as argument. If the requested variable is not + // part of the environment list, the function returns a NULL pointer. +#if ( defined(unix) || defined(__unix) || defined(__unix__) ) && !defined(__APPLE__) + if (getenv("DISPLAY") == NULL) + { + valid = false; + throw GnuplotException("Can't find DISPLAY variable"); + } +#endif + + + // if gnuplot not available + if (!Gnuplot::get_program_path()) + { + valid = false; + throw GnuplotException("Can't find gnuplot"); + } + + + // + // open pipe + // + std::string tmp = Gnuplot::m_sGNUPlotPath + "/" + + Gnuplot::m_sGNUPlotFileName; + + // FILE *popen(const char *command, const char *mode); + // The popen() function shall execute the command specified by the string + // command, create a pipe between the calling program and the executed + // command, and return a pointer to a stream that can be used to either read + // from or write to the pipe. +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) + gnucmd = _popen(tmp.c_str(),"w"); +#elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) + gnucmd = popen(tmp.c_str(),"w"); +#endif + + // popen() shall return a pointer to an open stream that can be used to read + // or write to the pipe. Otherwise, it shall return a null pointer and may + // set errno to indicate the error. + if (!gnucmd) + { + valid = false; + throw GnuplotException("Couldn't open connection to gnuplot"); + } + + nplots = 0; + valid = true; + smooth = ""; + + //set terminal type + showonscreen(); + + return; +} + + +//------------------------------------------------------------------------------ +// +// Find out if a command lives in m_sGNUPlotPath or in PATH +// +bool Gnuplot::get_program_path() +{ + // + // first look in m_sGNUPlotPath for Gnuplot + // + std::string tmp = Gnuplot::m_sGNUPlotPath + "/" + + Gnuplot::m_sGNUPlotFileName; + +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) + if ( Gnuplot::file_exists(tmp,0) ) // check existence +#elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) + if ( Gnuplot::file_exists(tmp,1) ) // check existence and execution permission +#endif + { + return true; + } + + + // + // second look in PATH for Gnuplot + // + char *path; + // Retrieves a C string containing the value of environment variable PATH + path = getenv("PATH"); + + + if (path == NULL) + { + throw GnuplotException("Path is not set"); + return false; + } + else + { + std::list ls; + + //split path (one long string) into list ls of strings +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) + stringtok(ls,path,";"); +#elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) + stringtok(ls,path,":"); +#endif + + // scan list for Gnuplot program files + for (std::list::const_iterator i = ls.begin(); + i != ls.end(); ++i) + { + tmp = (*i) + "/" + Gnuplot::m_sGNUPlotFileName; +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) + if ( Gnuplot::file_exists(tmp,0) ) // check existence +#elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) + if ( Gnuplot::file_exists(tmp,1) ) // check existence and execution permission +#endif + { + Gnuplot::m_sGNUPlotPath = *i; // set m_sGNUPlotPath + return true; + } + } + + tmp = "Can't find gnuplot neither in PATH nor in \"" + + Gnuplot::m_sGNUPlotPath + "\""; + throw GnuplotException(tmp); + + Gnuplot::m_sGNUPlotPath = ""; + return false; + } +} + + + +//------------------------------------------------------------------------------ +// +// check if file exists +// +bool Gnuplot::file_exists(const std::string &filename, int mode) +{ + if ( mode < 0 || mode > 7) + { + throw std::runtime_error("In function \"Gnuplot::file_exists\": mode\ + has to be an integer between 0 and 7"); + return false; + } + + // int _access(const char *path, int mode); + // returns 0 if the file has the given mode, + // it returns -1 if the named file does not exist or is not accessible in + // the given mode + // mode = 0 (F_OK) (default): checks file for existence only + // mode = 1 (X_OK): execution permission + // mode = 2 (W_OK): write permission + // mode = 4 (R_OK): read permission + // mode = 6 : read and write permission + // mode = 7 : read, write and execution permission +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) + if (_access(filename.c_str(), mode) == 0) +#elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) + if (access(filename.c_str(), mode) == 0) +#endif + { + return true; + } + else + { + return false; + } + +} + +bool Gnuplot::file_available(const std::string &filename){ + std::ostringstream except; + if( Gnuplot::file_exists(filename,0) ) // check existence + { + if( !(Gnuplot::file_exists(filename,4)) ){// check read permission + except << "No read permission for File \"" << filename << "\""; + throw GnuplotException( except.str() ); + return false; + } + } + else{ + except << "File \"" << filename << "\" does not exist"; + throw GnuplotException( except.str() ); + return false; + } +} + + + +//------------------------------------------------------------------------------ +// +// Opens a temporary file +// +std::string Gnuplot::create_tmpfile(std::ofstream &tmp) +{ + +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) + char name[] = "gnuplotiXXXXXX"; //tmp file in working directory +#elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) + char name[] = "/tmp/gnuplotiXXXXXX"; // tmp file in /tmp +#endif + + // + // check if maximum number of temporary files reached + // + if (Gnuplot::tmpfile_num == GP_MAX_TMP_FILES - 1) + { + std::ostringstream except; + except << "Maximum number of temporary files reached (" + << GP_MAX_TMP_FILES << "): cannot open more files" << std::endl; + + throw GnuplotException( except.str() ); + return ""; + } + + // int mkstemp(char *name); + // shall replace the contents of the string pointed to by "name" by a unique + // filename, and return a file descriptor for the file open for reading and + // writing. Otherwise, -1 shall be returned if no suitable file could be + // created. The string in template should look like a filename with six + // trailing 'X' s; mkstemp() replaces each 'X' with a character from the + // portable filename character set. The characters are chosen such that the + // resulting name does not duplicate the name of an existing file at the + // time of a call to mkstemp() + + + // + // open temporary files for output + // +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) + if (_mktemp(name) == NULL) +#elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) + if (mkstemp(name) == -1) +#endif + { + std::ostringstream except; + except << "Cannot create temporary file \"" << name << "\""; + throw GnuplotException(except.str()); + return ""; + } + + tmp.open(name); + if (tmp.bad()) + { + std::ostringstream except; + except << "Cannot create temporary file \"" << name << "\""; + throw GnuplotException(except.str()); + return ""; + } + + // + // Save the temporary filename + // + tmpfile_list.push_back(name); + Gnuplot::tmpfile_num++; + + return name; +} + +void Gnuplot::remove_tmpfiles(){ + if ((tmpfile_list).size() > 0) + { + for (unsigned int i = 0; i < tmpfile_list.size(); i++) + remove( tmpfile_list[i].c_str() ); + + Gnuplot::tmpfile_num -= tmpfile_list.size(); + } +} +#endif diff --git a/src/inc/jellyfish/aligned_values_array.hpp b/src/inc/jellyfish/aligned_values_array.hpp new file mode 100644 index 00000000..0ba9df21 --- /dev/null +++ b/src/inc/jellyfish/aligned_values_array.hpp @@ -0,0 +1,141 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_ALIGNED_VALUE_HPP__ +#define __JELLYFISH_ALIGNED_VALUE_HPP__ + +#include +#include + +namespace jellyfish { + namespace aligned_values { + template + class array : public storage_t { + public: + typedef _key_t key_t; + typedef _val_t val_t; + + private: + typedef typename ::jellyfish::invertible_hash::array key_ary_t; + typedef typename ::jellyfish::direct_indexing::array val_ary_t; + + key_ary_t keys; + val_ary_t vals; + + public: + array(size_t _size, uint_t _key_len, uint_t _reprobe_limit, + size_t *_reprobes) : + keys(_size, _key_len, 0, _reprobe_limit, _reprobes), + vals(keys.get_lsize()) + { } + + array(char *keys_map, char *vals_map, + size_t _size, uint_t _key_len, uint_t _reprobe_limit, + size_t *_reprobes, SquareBinaryMatrix &hash_matrix, + SquareBinaryMatrix &hash_inv_matrix) : + keys(keys_map, _size, _key_len, 0, _reprobe_limit, _reprobes, + hash_matrix, hash_inv_matrix), + vals(vals_map, keys.get_lsize()) + { } + + + void set_matrix(SquareBinaryMatrix &m) { + keys.set_matrix(m); + } + size_t get_size() const { return keys.get_size(); } + uint_t get_key_len() const { return keys.get_key_len(); } + uint_t get_val_len() const { return keys.get_val_len(); } + uint_t get_max_reprobe() const { return keys.get_max_reprobe(); } + size_t get_max_reprobe_offset() const { + return keys.get_max_reprobe_offset(); + } + uint_t get_block_len() const { return keys.get_block_len(); } + uint_t get_block_word_len() const { + return keys.get_block_word_len() + keys.get_block_len() * sizeof(val_t); + } + + size_t floor_block(size_t entries, size_t &blocks) const { + return keys.floor_block(entries, blocks); + } + void zero_keys(const size_t start, const size_t length) { + keys.zero_blocks(start, length); + } + void zero_values(const size_t start, const size_t length) { + vals.zero(start, length); + } + void write_keys_blocks(std::ostream *out, size_t start, size_t length) const { + keys.write_blocks(out, start, length); + } + void write_values(std::ostream *out, size_t start, size_t length) const { + vals.write(out, start, length); + } + void write_matrices(std::ostream *out) { + keys.write_ary_header(out); + } + + template + bool add(key_t key, const add_t &val, val_t *oval = 0) { + bool is_new; + size_t id; + + if(!keys.set(key, &is_new, &id)) + return false; + + vals.add(id, val, oval); + return true; + } + + bool get_val(key_t key, val_t &val, bool full = true) const { + key_t v_ignore; + size_t key_id; + + if(!keys.get_val(key, key_id, v_ignore, false)) + return false; + + vals.get_val(key_id, val); + return true; + } + + class iterator { + typename key_ary_t::iterator key_it; + const val_ary_t *const vals; + + public: + iterator(typename key_ary_t::iterator _key_it, const val_ary_t *_vals) : + key_it(_key_it), vals(_vals) {} + + uint64_t get_hash() const { return key_it.get_hash(); } + uint64_t get_pos() const { return key_it.get_pos(); } + uint64_t get_start() const { return key_it.get_start(); } + uint64_t get_end() const { return key_it.get_end(); } + key_t get_key() const { return key_it.get_key(); } + val_t get_val() const { return (*vals)[get_id()]; } + size_t get_id() const { return key_it.get_id(); } + char *get_dna_str() { return key_it.get_dna_str(); } + bool next() { return key_it.next(); } + }; + iterator iterator_all() const { + return iterator(keys.iterator_all(), &vals); + } + iterator iterator_slice(size_t slice_number, size_t number_of_slice) const { + return iterator(keys.iterator_slice(slice_number, number_of_slice), + &vals); + } + }; + } +} + +#endif diff --git a/src/inc/jellyfish/allocators_mmap.hpp b/src/inc/jellyfish/allocators_mmap.hpp new file mode 100644 index 00000000..8d975cda --- /dev/null +++ b/src/inc/jellyfish/allocators_mmap.hpp @@ -0,0 +1,64 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_ALLOCATORS_MMAP_HPP__ +#define __JELLYFISH_ALLOCATORS_MMAP_HPP__ + +#include +#include +#include +#include +#include + +namespace allocators { + class mmap { + void *ptr; + size_t size; + + public: + mmap() : ptr(MAP_FAILED), size(0) {} + explicit mmap(size_t _size) : ptr(MAP_FAILED), size(0) { + realloc(_size); + fast_zero(); + } + ~mmap() { + if(ptr != MAP_FAILED) + ::munmap(ptr, size); + } + + void *get_ptr() const { return ptr != MAP_FAILED ? ptr : NULL; } + size_t get_size() const { return size; } + void *realloc(size_t new_size); + int lock() { return mlock(ptr, size); } + int unlock() { return munlock(ptr, size); } + + // Return a a number of bytes which is a number of whole pages at + // least as large as size. + static size_t round_to_page(size_t _size); + + private: + static const int nb_threads = 4; + struct tinfo { + pthread_t thid; + char *start, *end; + size_t pgsize; + }; + void fast_zero(); + static void * _fast_zero(void *_info); + }; +} + +#endif diff --git a/src/inc/jellyfish/atomic_gcc.hpp b/src/inc/jellyfish/atomic_gcc.hpp new file mode 100644 index 00000000..aafa9689 --- /dev/null +++ b/src/inc/jellyfish/atomic_gcc.hpp @@ -0,0 +1,68 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_ATOMIC_GCC_HPP__ +#define __JELLYFISH_ATOMIC_GCC_HPP__ + +namespace atomic +{ + class gcc + { + public: + template + static inline T cas(volatile T *ptr, T oval, T nval) { + return __sync_val_compare_and_swap(ptr, oval, nval); + } + + template + static inline T set(T *ptr, T nval) { + return __sync_lock_test_and_set(ptr, nval); + } + + template + static inline T add_fetch(volatile T *ptr, T x) { + T ncount = *ptr, count; + do { + count = ncount; + ncount = cas((T *)ptr, count, count + x); + } while(ncount != count); + return count + x; + } + + template + static inline T fetch_add(volatile T *ptr, T x) { + T ncount = *ptr, count; + do { + count = ncount; + ncount = cas((T *)ptr, count, count + x); + } while(ncount != count); + return count; + } + + template + static inline T set_to_max(volatile T *ptr, T x) { + T count = *ptr; + while(x > count) { + T ncount = cas(ptr, count, x); + if(ncount == count) + return x; + count = ncount; + } + return count; + } + }; +} +#endif diff --git a/src/inc/jellyfish/capped_integer.hpp b/src/inc/jellyfish/capped_integer.hpp new file mode 100644 index 00000000..fa0b994d --- /dev/null +++ b/src/inc/jellyfish/capped_integer.hpp @@ -0,0 +1,64 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_CAPPED_INTEGER_HPP__ +#define __JELLYFISH_CAPPED_INTEGER_HPP__ + +#include + +namespace jellyfish { + template class capped_integer; + template + std::ostream &operator<<(std::ostream &os, const capped_integer &i); + + template + class capped_integer { + T x; + + public: + typedef T bits_t; + static const T cap = (T)-1; + + capped_integer() : x(0) {} + explicit capped_integer(bits_t _x) : x(_x) {} + + static const capped_integer zero; + static const capped_integer one; + + const capped_integer operator+(const capped_integer y) const { + return capped_integer((y.x > ~x) ? cap : y.x + x); + } + const capped_integer operator+(const T& y) const { + return capped_integer((y > ~x) ? cap : y + x); + } + + bits_t bits() const { return x; } + float to_float() const { return (float)x; } + + bool operator==(const capped_integer &o) { return x == o.x; } + bool operator!() const { return x == 0; } + + friend std::ostream &operator<< <> (std::ostream &os, + const capped_integer &i); + }; + + template + std::ostream &operator<<(std::ostream &os, const capped_integer &i) { + return os << i.x; + } +} + +#endif diff --git a/src/inc/jellyfish/circular_buffer.hpp b/src/inc/jellyfish/circular_buffer.hpp new file mode 100644 index 00000000..860135cd --- /dev/null +++ b/src/inc/jellyfish/circular_buffer.hpp @@ -0,0 +1,68 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_CIRCULAR_BUFFER_HPP__ +#define __JELLYFISH_CIRCULAR_BUFFER_HPP__ + +#include + +namespace jellyfish { + template + class circular_buffer { + const int size; + T *buffer, *end; + T *start; + + public: + explicit circular_buffer(int _size) : size(_size) { + buffer = new T[size]; + end = buffer + size; + start = buffer; + } + + ~circular_buffer() { + delete [] buffer; + } + + void append(const T v) { + // std::cerr << "append buffer " << (void *)buffer << " end " << (void *)end << " start " << (void *)start << " val " << v << "\n"; + *start++ = v; + + if(start == end) + start = buffer; + } + + template + T op(U o) const { + T *c = start; + T acc = *c++; + if(c == end) + c = buffer; + + do { + acc = o(acc, *c++); + if(c == end) + c = buffer; + } while(c != start); + return acc; + } + + static T T_times(T &x, T &y) { return x * y; } + T prod() const { return op(T_times); } + }; +} + +#endif diff --git a/src/inc/jellyfish/compacted_dumper.hpp b/src/inc/jellyfish/compacted_dumper.hpp new file mode 100644 index 00000000..5b3dbe6b --- /dev/null +++ b/src/inc/jellyfish/compacted_dumper.hpp @@ -0,0 +1,171 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#include + +namespace jellyfish { + template + class compacted_dumper : public dumper_t { + define_error_class(ErrorWriting); + typedef typename storage_t::iterator iterator; + typedef compacted_hash::writer writer_t; + struct thread_info_t { + pthread_t thread_id; + uint_t id; + locks::pthread::cond cond; + volatile bool token; + writer_t writer; + compacted_dumper *self; + }; + + uint_t threads; + std::string file_prefix; + size_t buffer_size; + uint_t klen, vlen; + uint_t key_len, val_len; + size_t record_len, nb_records, nb_blocks; + storage_t *ary; + uint_t file_index; + struct thread_info_t *thread_info; + uint64_t max_count; + uint64_t volatile unique, distinct, total; + std::ofstream out; + + public: + // klen: key field length in bits in hash (i.e before rounding up to bytes) + // vlen: value field length in bits + compacted_dumper(uint_t _threads, const char *_file_prefix, size_t _buffer_size, + uint_t _vlen, storage_t *_ary) : + threads(_threads), file_prefix(_file_prefix), buffer_size(_buffer_size), + klen(_ary->get_key_len()), vlen(_vlen), ary(_ary), file_index(0) + { + std::cerr << "Compacted dumper init" << std::endl; + key_len = bits_to_bytes(klen); + val_len = bits_to_bytes(vlen); + max_count = (((uint64_t)1) << (8*val_len)) - 1; + record_len = key_len + val_len; + nb_records = ary->floor_block(_buffer_size / record_len, nb_blocks); + + thread_info = new struct thread_info_t[threads]; + for(uint_t i = 0; i < threads; i++) { + thread_info[i].token = i == 0; + thread_info[i].writer.initialize(nb_records, ary->get_key_len(), vlen, ary); + thread_info[i].id = i; + thread_info[i].self = this; + } + unique = distinct = total = 0; + } + + ~compacted_dumper() { + if(thread_info) { + delete[] thread_info; + } + } + + static void *dump_to_file_thread(void *arg) { + struct thread_info_t *info = (struct thread_info_t *)arg; + info->self->dump_to_file(info); + return NULL; + } + + void dump_to_file(struct thread_info_t *my_info); + + virtual void dump(); + void update_stats() { + thread_info[0].writer.update_stats_with(&out, unique, distinct, total); + } + }; + + template + void compacted_dumper::dump() { + static const long file_len = pathconf("/", _PC_PATH_MAX); + std::cerr << "dump()" << std::endl; + char file[file_len + 1]; + file[file_len] = '\0'; + int off = snprintf(file, file_len, "%s", file_prefix.c_str()); + if(off < 0) + eraise(ErrorWriting) << "Error creating output path" << err::no; + if(off > 0 && off < file_len) { + int _off = snprintf(file + off, file_len - off, "_%uld", file_index++); + if(_off < 0) + eraise(ErrorWriting) << "Error creating output path" << err::no; + off += _off; + } + if(off >= file_len) + eraise(ErrorWriting) << "File path is too long"; + + + // out.exceptions(std::ios::eofbit|std::ios::failbit|std::ios::badbit); + std::cerr << "Open " << file << std::endl; + out.open(file); + if(!out.good()) + eraise(ErrorWriting) << "'" << file << "': " + << "Can't open file for writing" << err::no; + + + out.write("JFLISTDN", 8); + unique = distinct = total = 0; + for(uint_t i = 0; i < threads; i++) + thread_info[i].token = i == 0; + for(uint_t i = 0; i < threads; i++) { + pthread_create(&thread_info[i].thread_id, NULL, dump_to_file_thread, + &thread_info[i]); + } + + for(uint_t i = 0; i < threads; i++) + pthread_join(thread_info[i].thread_id, NULL); + update_stats(); + out.close(); + } + + template + void compacted_dumper::dump_to_file(struct thread_info_t *my_info) { + size_t i; + struct thread_info_t *next_info = &thread_info[(my_info->id + 1) % threads]; + atomic_t atomic; + + if(my_info->token) + my_info->writer.write_header(&out); + + for(i = my_info->id; i * nb_records < ary->get_size(); i += threads) { + // fill up buffer + iterator it(ary, i * nb_records, (i + 1) * nb_records); + + while(it.next()) { + my_info->writer.append(it.key, it.val); + } + + // wait for token & write buffer + my_info->cond.lock(); + while(!my_info->token) { my_info->cond.wait(); } + my_info->cond.unlock(); + my_info->writer.dump(&out); + + // pass on token + my_info->token = false; + next_info->cond.lock(); + next_info->token = true; + next_info->cond.signal(); + next_info->cond.unlock(); + + // zero out memory + ary->zero_blocks(i * nb_blocks, nb_blocks); + } + atomic.add_fetch(&unique, my_info->writer.get_unique()); + atomic.add_fetch(&distinct, my_info->writer.get_distinct()); + atomic.add_fetch(&total, my_info->writer.get_total()); + } +} diff --git a/src/inc/jellyfish/compacted_hash.hpp b/src/inc/jellyfish/compacted_hash.hpp new file mode 100644 index 00000000..75c7bd08 --- /dev/null +++ b/src/inc/jellyfish/compacted_hash.hpp @@ -0,0 +1,530 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_COMPACTED_HASH__ +#define __JELLYFISH_COMPACTED_HASH__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace jellyfish { + namespace compacted_hash { + define_error_class(ErrorReading); + + static const char *file_type = "JFLISTDN"; + struct header { + char type[8]; // type of file. Expect file_type + uint64_t key_len; + uint64_t val_len; // In bytes + uint64_t size; // In bytes + uint64_t max_reprobe; + uint64_t unique; + uint64_t distinct; + uint64_t total; + uint64_t max_count; + + header() { } + explicit header(char *ptr) { + if(memcmp(ptr, file_type, sizeof(type))) + eraise(ErrorReading) << "Bad file type '" << err::substr(ptr, sizeof(type)) + << "', expected '" << err::substr(file_type, sizeof(type)) << "'"; + memcpy((void *)this, ptr, sizeof(struct header)); + } + }; + + template + class writer { + uint64_t unique, distinct, total, max_count; + size_t nb_records; + uint_t klen, vlen; + uint_t key_len, val_len; + storage_t *ary; + char *buffer, *end, *ptr; + + public: + writer() : unique(0), distinct(0), total(0), max_count(0) + { buffer = ptr = end = NULL; } + + writer(size_t _nb_records, uint_t _klen, uint_t _vlen, storage_t *_ary) + { + initialize(_nb_records, _klen, _vlen, _ary); + } + + void initialize(size_t _nb_records, uint_t _klen, uint_t _vlen, storage_t *_ary) { + unique = distinct = total = max_count = 0; + nb_records = _nb_records; + klen = _klen; + vlen = _vlen; + key_len = bits_to_bytes(klen); + val_len = bits_to_bytes(vlen); + ary = _ary; + buffer = new char[nb_records * (key_len + val_len)]; + end = buffer + (nb_records * (key_len + val_len)); + ptr = buffer; + } + + ~writer() { + if(buffer) + delete buffer; + } + + bool append(uint64_t key, uint64_t val) { + if(ptr >= end) + return false; + memcpy(ptr, &key, key_len); + ptr += key_len; + memcpy(ptr, &val, val_len); + ptr += val_len; + unique += val == 1; + distinct++; + total += val; + if(val > max_count) + max_count = val; + return true; + } + + void dump(std::ostream *out) { + out->write(buffer, ptr - buffer); + ptr = buffer; + } + + void write_header(std::ostream *out) const { + struct header head; + memset(&head, '\0', sizeof(head)); + memcpy(&head.type, file_type, sizeof(head.type)); + head.key_len = klen; + head.val_len = val_len; + head.size = ary->get_size(); + head.max_reprobe = ary->get_max_reprobe_offset(); + out->write((char *)&head, sizeof(head)); + ary->write_ary_header(out); + } + + void update_stats(std::ostream *out) const { + update_stats_with(out, unique, distinct, total, max_count); + } + + void update_stats_with(std::ostream *out, uint64_t _unique, uint64_t _distinct, + uint64_t _total, uint64_t _max_count) const { + if(!out->good()) + return; + out->seekp(0); + if(!out->good()) { + out->clear(); + return; + } + + struct header head; + memcpy(&head.type, file_type, sizeof(head.type)); + head.key_len = klen; + head.val_len = val_len; + head.size = ary->get_size(); + head.max_reprobe = ary->get_max_reprobe_offset(); + head.unique = _unique; + head.distinct = _distinct; + head.total = _total; + head.max_count = _max_count; + out->write((char *)&head, sizeof(head)); + } + + uint64_t get_unique() const { return unique; } + uint64_t get_distinct() const { return distinct; } + uint64_t get_total() const { return total; } + uint64_t get_max_count() const { return max_count; } + uint_t get_key_len_bytes() const { return key_len; } + uint_t get_val_len_bytes() const { return val_len; } + + void reset_counters() { + unique = distinct = total = max_count = 0; + } + }; + + template + class reader { + struct header header; + std::ifstream *io; + uint_t key_len; + SquareBinaryMatrix hash_matrix, hash_inverse_matrix; + size_t record_len, buffer_len; + size_t size_mask; + char *buffer, *end_buffer, *ptr; + char dna_str[33]; + + public: + key_t key; + val_t val; + + reader() { io = 0; buffer = 0; memset(dna_str, '\0', sizeof(dna_str)); } + explicit reader(std::string filename, size_t _buff_len = 10000000UL) { + initialize(filename, _buff_len); + } + + void initialize(std::string filename, size_t _buff_len) { + memset(dna_str, '\0', sizeof(dna_str)); + io = new std::ifstream(filename.c_str()); + io->read((char *)&header, sizeof(header)); + if(!io->good()) + eraise(ErrorReading) << "'" << filename << "': " + << "File truncated"; + if(memcmp(header.type, file_type, sizeof(header.type))) + eraise(ErrorReading) << "'" << filename << "': " + << "Bad file type '" + << err::substr(header.type, sizeof(header.type)) << "', expected '" + << err::substr(file_type, sizeof(header.type)) << "'"; + + if(header.key_len > 64 || header.key_len == 0) + eraise(ErrorReading) << "'" << filename << "': " + << "Invalid key length '" + << header.key_len << "'"; + if(header.size != (1UL << floorLog2(header.size))) + eraise(ErrorReading) << "'" << filename << "': " + << "Size '" << header.size + << "' is not a power of 2"; + key_len = (header.key_len / 8) + (header.key_len % 8 != 0); + record_len = key_len + header.val_len; + buffer_len = record_len * (_buff_len / record_len); + buffer = new char[buffer_len]; + ptr = buffer; + end_buffer = NULL; + + hash_matrix.load(io); + hash_inverse_matrix.load(io); + + if(header.distinct != 0) { + std::streamoff list_size = get_file_size(*io); + if(list_size != (std::streamoff)-1 && + list_size - (header.distinct * record_len) != 0) { + eraise(ErrorReading) << "'" << filename << "': " + << "Bad hash size '" << list_size + << "', expected '" + << (header.distinct * record_len) << "' bytes"; + } + } + key = val = 0; + size_mask = header.size - 1; + } + + ~reader() { + if(io) + delete io; + if(buffer) + delete[] buffer; + } + + uint_t get_key_len() const { return header.key_len; } + uint_t get_mer_len() const { return header.key_len / 2; } + uint_t get_val_len() const { return header.val_len; } + size_t get_size() const { return header.size; } + uint64_t get_max_reprobe() const { return header.max_reprobe; } + uint64_t get_max_reprobe_offset() const { return header.max_reprobe; } + uint64_t get_unique() const { return header.unique; } + uint64_t get_distinct() const { return header.distinct; } + uint64_t get_total() const { return header.total; } + uint64_t get_max_count() const { return header.max_count; } + SquareBinaryMatrix get_hash_matrix() const { return hash_matrix; } + SquareBinaryMatrix get_hash_inverse_matrix() const { return hash_inverse_matrix; } + void write_ary_header(std::ostream *out) const { + hash_matrix.dump(out); + hash_inverse_matrix.dump(out); + } + + key_t get_key() const { return key; } + val_t get_val() const { return val; } + + + void get_string(char *out) const { + parse_dna::mer_binary_to_string(key, get_mer_len(), out); + } + char* get_dna_str() { + parse_dna::mer_binary_to_string(key, get_mer_len(), dna_str); + return dna_str; + } + uint64_t get_hash() const { return hash_matrix.times(key); } + uint64_t get_pos() const { return hash_matrix.times(key) & size_mask; } + + bool next() { + while(true) { + if(ptr <= end_buffer) { + memcpy(&key, ptr, key_len); + ptr += key_len; + memcpy(&val, ptr, header.val_len); + ptr += header.val_len; + return true; + } + + if(io->fail()) + return false; + io->read(buffer, buffer_len); + // if(record_len * (io->gcount() / record_len) != io->gcount()) + // return false; + ptr = buffer; + end_buffer = NULL; + if((size_t)io->gcount() >= record_len) + end_buffer = ptr + (io->gcount() - record_len); + } + } + }; + + template + class query { + mapped_file file; + struct header header; + uint_t key_len; + uint_t val_len; + uint_t record_len; + SquareBinaryMatrix hash_matrix; + SquareBinaryMatrix hash_inverse_matrix; + char *base; + uint64_t size; + uint64_t size_mask; + uint64_t last_id; + key_t first_key, last_key; + uint64_t first_pos, last_pos; + bool canonical; + + public: + /* Can't wait for C++0x to be finalized and call constructor + from constructor! + */ + explicit query(mapped_file &map) : + file(map), + header(file.base()), + key_len((header.key_len / 8) + (header.key_len % 8 != 0)), + val_len(header.val_len), + record_len(key_len + header.val_len), + hash_matrix(file.base() + sizeof(header)), + hash_inverse_matrix(file.base() + sizeof(header) + hash_matrix.dump_size()), + base(file.base() + sizeof(header) + hash_matrix.dump_size() + hash_inverse_matrix.dump_size()), + size(header.size), + size_mask(header.size - 1), + last_id((file.end() - base) / record_len), + canonical(false) + { + if(header.distinct != 0 && file.end() - base - header.distinct * record_len != 0) + eraise(ErrorReading) << "'" << file.path() << "': " + << "Bad hash size '" << (file.end() - base) + << "', expected '" << header.distinct * record_len << "' bytes"; + + get_key(0, &first_key); + first_pos = get_pos(first_key); + get_key(last_id - 1, &last_key); + last_pos = get_pos(last_key); + } + explicit query(std::string filename) : + file(filename.c_str()), + header(file.base()), + key_len((header.key_len / 8) + (header.key_len % 8 != 0)), + val_len(header.val_len), + record_len(key_len + header.val_len), + hash_matrix(file.base() + sizeof(header)), + hash_inverse_matrix(file.base() + sizeof(header) + hash_matrix.dump_size()), + base(file.base() + sizeof(header) + hash_matrix.dump_size() + hash_inverse_matrix.dump_size()), + size(header.size), + size_mask(header.size - 1), + last_id((file.end() - base) / record_len), + canonical(false) + { + if(header.distinct != 0 && file.end() - base - header.distinct * record_len != 0) + eraise(ErrorReading) << "'" << file.path() << "': " + << "Bad hash size '" << (file.end() - base) + << "', expected '" << header.distinct * record_len << "' bytes"; + + get_key(0, &first_key); + first_pos = get_pos(first_key); + get_key(last_id - 1, &last_key); + last_pos = get_pos(last_key); + } + + uint_t get_key_len() const { return header.key_len; } + uint_t get_mer_len() const { return header.key_len / 2; } + uint_t get_val_len() const { return header.val_len; } + size_t get_size() const { return header.size; } + size_t get_nb_mers() const { return last_id; } + uint64_t get_max_reprobe() const { return header.max_reprobe; } + uint64_t get_max_reprobe_offset() const { return header.max_reprobe; } + uint64_t get_unique() const { return header.unique; } + uint64_t get_distinct() const { return header.distinct; } + uint64_t get_total() const { return header.total; } + uint64_t get_max_count() const { return header.max_count; } + SquareBinaryMatrix get_hash_matrix() const { return hash_matrix; } + SquareBinaryMatrix get_hash_inverse_matrix() const { return hash_inverse_matrix; } + bool get_canonical() const { return canonical; } + void set_canonical(bool v) { canonical = v; } + + /* No check is made on the validity of the string passed. Should only contained [acgtACGT] to get a valid answer. + */ + val_t operator[] (const char *key_s) const { + return get_key_val(parse_dna::mer_string_to_binary(key_s, get_mer_len())); + } + val_t operator[] (const key_t key) const { return get_key_val(key); } + + void get_key(size_t id, key_t *k) const { + *k = 0; + memcpy(k, base + id * record_len, key_len); + } + void get_val(size_t id, val_t *v) const { + *v = 0; + memcpy(v, base + id * record_len + key_len, val_len); + } + uint64_t get_pos(key_t k) const { + return hash_matrix.times(k) & size_mask; + } + + val_t get_key_val(const key_t key) const { + uint64_t id; + val_t res; + if(get_key_val_id(key, &res, &id)) + return res; + else + return 0; + } + + bool get_key_val_id(const key_t _key, val_t *res, + uint64_t *id) const { + key_t key; + if(canonical) { + key = parse_dna::reverse_complement(_key, get_mer_len()); + if(key > _key) + key = _key; + } else { + key = _key; + } + if(key == first_key) { + get_val(0, res); + *id = 0; + return true; + } + if(key == last_key) { + get_val(last_id - 1, res); + *id = last_id; + return true; + } + uint64_t pos = get_pos(key); + if(pos < first_pos || pos > last_pos) + return false; + uint64_t first = 0, last = last_id; + while(first < last - 1) { + uint64_t middle = (first + last) / 2; + key_t mid_key; + get_key(middle, &mid_key); + // printf("%ld %ld %ld %ld %ld %ld %ld\n", key, pos, first, middle, last, mid_key, get_pos(mid_key)); + if(key == mid_key) { + get_val(middle, res); + *id = middle; + return true; + } + uint64_t mid_pos = get_pos(mid_key); + if(mid_pos > pos || (mid_pos == pos && mid_key > key)) + last = middle; + else + first = middle; + } + return false; + } + + class iterator { + char *base, *ptr; + uint64_t last_id; + uint_t key_len; + uint_t val_len; + uint_t record_len; + uint_t mer_len; + uint64_t id; + key_t key; + val_t val; + char dna_str[33]; + + public: + iterator(char *_base, uint64_t _last_id, uint_t _key_len, uint_t _val_len, uint_t _mer_len) : + base(_base), ptr(_base), last_id(_last_id), key_len(_key_len), val_len(_val_len), + record_len(key_len + val_len), mer_len(_mer_len), id(0), key(0), val(0) + { + memset(dna_str, '\0', sizeof(dna_str)); + } + + key_t get_key() const { return key; } + val_t get_val() const { return val; } + uint64_t get_id() const { return id; } + + bool next() { + if(id >= last_id) + return false; + ++id; + memcpy(&key, ptr, key_len); + ptr += key_len; + memcpy(&val, ptr, val_len); + ptr += val_len; + return true; + } + + bool next(uint64_t *_id, key_t *_key, val_t *_val) { + if(id >= last_id) + return false; + *_id = atomic::gcc::add_fetch(&id, (uint64_t)1) - 1; + if(*_id >= last_id) + return false; + char *ptr = base + (*_id) * record_len; + *_key = 0; + memcpy(_key, ptr, key_len); + ptr += key_len; + *_val = 0; + memcpy(_val, ptr, val_len); + return true; + } + + inline bool next(key_t *_key, val_t *_val) { + uint64_t _id; + return next(&_id, _key, _val); + } + + char *get_dna_str() { + parse_dna::mer_binary_to_string(key, mer_len, dna_str); + return dna_str; + } + + void get_dna_str(char *out) { + parse_dna::mer_binary_to_string(key, mer_len, out); + } + }; + + iterator get_iterator() const { return iterator_all(); } + iterator iterator_all() const { return iterator(base, last_id, key_len, val_len, get_mer_len()); } + iterator iterator_slice(uint64_t slice_number, uint64_t number_of_slice) const { + std::pair res = + slice(slice_number, number_of_slice, last_id); + char *it_base = base + res.first * record_len; + uint64_t it_last_id = res.second - res.first; + + if(it_base >= file.end()) { + it_base = base; + it_last_id = 0; + } else if(it_base + it_last_id * record_len > file.end()) + it_last_id = (file.end() - it_base) / record_len; + + return iterator(it_base, it_last_id, key_len, val_len, get_mer_len()); + } + }; + } +} +#endif /* __COMPACTED_HASH__ */ diff --git a/src/inc/jellyfish/concurrent_queues.hpp b/src/inc/jellyfish/concurrent_queues.hpp new file mode 100644 index 00000000..1bac387f --- /dev/null +++ b/src/inc/jellyfish/concurrent_queues.hpp @@ -0,0 +1,161 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_CONCURRENT_QUEUES_HPP__ +#define __JELLYFISH_CONCURRENT_QUEUES_HPP__ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +/*** + * Circular buffer of fixed size with thread safe enqueue and dequeue + * operation to make it behave like a FIFO. Elements are enqueued at + * the head and dequeued at the tail. Never more than n elements + * should be enqueued if the size is n+1. There is no check for this. + * + * It is possible for the tail pointer to go past an element (i.e. it + * has been "dequeued"), but the thread is slow to zero the pointer + * (i.e. to claim the element). It is then possible for the head + * pointer to point to this not yet claimed element. The enqueue() + * method blindly skip over such an element. Hence, it is possible + * that the same element will be dequeued again before it is + * claimed. Or, it will be claimed after being skipped and another + * thread will dequeue what looks like an empty element. The outer + * loop of dequeue() handles this situation. + */ + +namespace jellyfish { + template + class concurrent_queue { + Val **queue; + const uint64_t size; + uint64_t volatile head; + uint64_t volatile tail; + bool volatile closed; + divisor64 size_div; + + public: + explicit concurrent_queue(uint64_t _size) : + size(20 *_size), head(0), tail(0), closed(false), size_div(size) + { + queue = new Val *[size]; + memset(queue, 0, sizeof(Val *) * size); + } + ~concurrent_queue() { delete [] queue; } + + void enqueue(Val *v); + Val *dequeue(); + bool is_closed() { return closed; } + void close() { closed = true; __sync_synchronize(); } + bool has_space() { return head != tail; } + bool is_low() { + uint64_t ctail = tail; + __sync_synchronize(); + uint64_t chead = head; + int64_t len = chead - ctail; + if(len < 0) + len += size; + return (uint64_t)(4*len) <= size; + } + uint64_t usage() { + uint64_t ctail = tail; + __sync_synchronize(); + uint64_t chead = head; + int64_t len = chead - ctail; + if(len < 0) + len += size; + return len; + } + }; + + template + void concurrent_queue::enqueue(Val *v) { + int done = 0; + uint64_t chead; + + chead = head; + do { + // uint64_t q, nhead; + uint64_t nhead = (chead + 1) % size_div; + // size_div.division(chead + 1, q, nhead); + // uint64_t nhead = (chead + 1) % size; + + done = (atomic::gcc::cas(&queue[chead], (Val*)0, v) == (Val*)0); + chead = atomic::gcc::cas(&head, chead, nhead); + } while(!done); + + assert(head < size); + assert(tail < size); + } + + template + Val *concurrent_queue::dequeue() { + bool done = false; + Val *res; + uint64_t ctail, ntail; + + ctail = tail; + // __sync_synchronize(); + do { + bool dequeued = false; + do { + // if(ctail == head) + // return NULL; + + // Complicated way to do ctail == head. Is it necessary? Or is + // the memory barrier above sufficient? Or even necessary? + if(atomic::gcc::cas(&head, ctail, ctail) == ctail) { + assert(head < size); + assert(tail < size); + return NULL; + } + // ntail = (ctail + 1) % size; + // uint64_t q; + // size_div.division(ctail + 1, q, ntail); + ntail = (ctail + 1) % size_div; + ntail = atomic::gcc::cas(&tail, ctail, ntail); + dequeued = ntail == ctail; + ctail = ntail; + } while(!dequeued); + + // Claim dequeued slot. We may have dequeued an element which is + // empty or that another thread also has dequeued but not yet + // claimed. This can happen if a thread is slow to claim (set + // pointer to 0) and the enqueue method has queued elements past + // this one. + res = queue[ctail]; + if(res) + done = atomic::gcc::cas(&queue[ctail], res, (Val*)0) == res; + } while(!done); + + assert(head < size); + assert(tail < size); + + return res; + } +} + +#endif diff --git a/src/inc/jellyfish/counter.hpp b/src/inc/jellyfish/counter.hpp new file mode 100644 index 00000000..83f0c56f --- /dev/null +++ b/src/inc/jellyfish/counter.hpp @@ -0,0 +1,52 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#include + +class counter_t { + volatile uint64_t count; + +public: + counter_t() : count(0) {} + + inline uint64_t operator++(int) { + return atomic::gcc::fetch_add(&count, (uint64_t)1); + } + inline uint64_t inc(uint64_t x) { + return atomic::gcc::fetch_add(&count, x); + } + inline uint64_t get() const { return count; } + + class block { + counter_t *c; + uint64_t bs; + uint64_t base, i; + + // friend counter_t; + public: + block(counter_t *_c, uint64_t _bs) : c(_c), bs(_bs), base(0), i(bs) {} + + public: + inline uint64_t operator++(int) { + if(i >= bs) { + i = 0; + base = c->inc(bs); + } + return base + i++; + } + }; + block get_block(uint64_t bs = 100) { return block(this, bs); } +}; diff --git a/src/inc/jellyfish/dbg.hpp b/src/inc/jellyfish/dbg.hpp new file mode 100644 index 00000000..d894696b --- /dev/null +++ b/src/inc/jellyfish/dbg.hpp @@ -0,0 +1,153 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __DBG_HPP__ +#define __DBG_HPP__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace dbg { + pid_t gettid(); + + class stringbuf : public std::stringbuf { + public: + stringbuf() : std::stringbuf(std::ios_base::out) { } + explicit stringbuf(const std::string &str) : + std::stringbuf(str, std::ios_base::out) { } + + bool end_is_space() { + if(pptr() == pbase()) + return true; + return isspace(*(pptr() - 1)); + } + friend class print_t; + }; + + class str { + const char *_s; + const size_t _l; + public: + str(const char *s, size_t len) : _s(s), _l(len) {} + friend class print_t; + }; + + class xspace { }; + class no_flush { }; + + class print_t { + static pthread_mutex_t _lock; + static volatile pid_t _print_tid; + + stringbuf _strbuf; + std::ostream _buf; + bool _flush; + public: + print_t(const char *file, const char *function, int line) : + _buf(&_strbuf), _flush(true) + { + const char *file_basename = strrchr(file, '/'); + if(!file_basename) + file_basename = file; + _buf << pthread_self() << "/" << gettid() << ":" + << file_basename << ":" << function << ":" << line << ": "; + } + + ~print_t() { + if(_print_tid == 0 || gettid() == _print_tid) { + pthread_mutex_lock(&_lock); + std::cerr.write(_strbuf.pbase(), _strbuf.pptr() - _strbuf.pbase()); + if(_flush) + std::cerr << std::endl; + else + std::cerr << "\n"; + pthread_mutex_unlock(&_lock); + } + } + + static int set_signal(int signum = SIGUSR1); + static void signal_handler(int signum, siginfo_t *info, void *context); + static pid_t print_tid() { return _print_tid; } + static void print_tid(pid_t new_tid) { _print_tid = new_tid; } + + print_t & operator<<(const char *a[]) { + for(int i = 0; a[i]; i++) + _buf << (i ? "\n" : "") << a[i]; + return *this; + } + print_t & operator<<(const std::exception &e) { + _buf << e.what(); + return *this; + } + print_t & operator<<(const str &ss) { + _buf.write(ss._s, ss._l); + return *this; + } + print_t & operator<<(const xspace &xs) { + if(!_strbuf.end_is_space()) + _buf << " "; + return *this; + } + print_t &operator<<(const no_flush &nf) { + _flush = false; + return *this; + } + print_t & operator<<(const Time &t) { + _buf << t.str(); + return *this; + } + template + print_t & operator<<(const T &x) { + _buf << x; + return *this; + } + }; + + class no_print_t { + public: + no_print_t() {} + + template + no_print_t & operator<<(const T &x) { return *this; } + }; + + void tic(); + Time toc(); +} + +#ifdef DEBUG +#define DBG if(1) dbg::print_t(__FILE__, __FUNCTION__, __LINE__) +#define NFDBG if(1) dbg::print_t(__FILE__, __FUNCTION__, __LINE__) << dbg::no_flush() +#define V(v) dbg::xspace() << #v ":" << v +#else +#define DBG if(1) dbg::no_print_t() +#define NFDBG if(1) dbg::no_print_t() +#define V(v) v +#endif + +#endif /* __DBG_HPP__ */ diff --git a/src/inc/jellyfish/direct_indexing_array.hpp b/src/inc/jellyfish/direct_indexing_array.hpp new file mode 100644 index 00000000..d6b4e9c7 --- /dev/null +++ b/src/inc/jellyfish/direct_indexing_array.hpp @@ -0,0 +1,151 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_DIRECT_INDEXING_ARRAY_HPP__ +#define __JELLYFISH_DIRECT_INDEXING_ARRAY_HPP__ + +namespace jellyfish { + namespace direct_indexing { + template + class array { + public: + typedef typename val_t::bits_t bits_t; + + uint_t key_len; + size_t size; + mem_block_t mem_block; + bits_t *data; + atomic_t atomic; + + + public: + explicit array(uint_t _key_len) : + key_len(_key_len), size(((size_t)1) << key_len), + mem_block(size * sizeof(bits_t)), + data((bits_t *)mem_block.get_ptr()) + { } + + array(char *map, uint_t _key_len) : + key_len(_key_len), size(((size_t)1) << key_len), + data((bits_t *)map) + { } + + size_t get_size() const { return size; } + uint_t get_key_len() const { return key_len; } + uint_t get_val_len() const { return sizeof(bits_t); } + size_t get_max_reprobe_offset() const { return 1; } + + void write_ary_header(std::ostream *out) const { + SquareBinaryMatrix id(key_len); + id.init_identity(); + id.dump(out); + id.dump(out); + } + void write_raw(std::ostream *out) const {} + + template + bool add(key_t key, const add_t &val, val_t *_oval = 0) { + bits_t oval = data[key]; + val_t nval = val_t(oval) + val; + + while(true) { + bits_t noval = atomic.cas(&data[key], oval, nval.bits()); + if(noval == oval) { + if(_oval) + *_oval = val_t(oval); + return true; + } + oval = noval; + nval = val_t(oval) + val; + } + return true; + } + + bool get_val(key_t key, val_t &val, bool full = true) const { + val = data[key]; + return true; + } + + class iterator { + const array *ary; + size_t start_id; + size_t nid; + size_t end_id; + key_t key; + bits_t val; + size_t id; + + public: + iterator(const array *_ary, size_t start, size_t end) : + ary(_ary), start_id(start), nid(start), + end_id(end > ary->get_size() ? ary->get_size() : end) + {} + + void get_string(char *out) const { + parse_dna::mer_binary_to_string(key, ary->get_key_len() / 2, out); + } + uint64_t get_hash() const { return key; } + uint64_t get_pos() const { return key; } + uint64_t get_start() const { return start_id; } + uint64_t get_end() const { return end_id; } + key_t get_key() const { return key; } + val_t get_val() const { return val_t(val); } + size_t get_id() const { return id; } + + bool next() { + while((id = nid) < end_id) { + nid++; + val = ary->data[id]; + if(val) { + key = id; + return true; + } + } + return false; + } + }; + friend class iterator; + iterator iterator_all() const { return iterator(this, 0, get_size()); } + iterator iterator_slice(size_t slice_number, size_t number_of_slice) const { + std::pair res = slice(slice_number, number_of_slice, get_size()); + return iterator(this, res.first, res.second); + } + + /** + * Zero out entries in [start, start+length). + */ + void zero(size_t start, size_t length) { + if(start >= size) + return; + if(start + length > size) + length = size - start; + memset(data + start, '\0', length * sizeof(*data)); + } + + void write(std::ostream *out, const size_t start, size_t length) const { + if(start >= size) + return; + if(start + length > size) + length = size - start; + out->write((char *)(data + start), length * sizeof(*data)); + } + + val_t operator[](key_t key) const { return val_t(data[key]); } + }; + } +} + +#endif diff --git a/src/inc/jellyfish/direct_sorted_dumper.hpp b/src/inc/jellyfish/direct_sorted_dumper.hpp new file mode 100644 index 00000000..163bd7f5 --- /dev/null +++ b/src/inc/jellyfish/direct_sorted_dumper.hpp @@ -0,0 +1,131 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#include +#include +#include +#include + +namespace jellyfish { + template + class direct_sorted_dumper : public dumper_t, public thread_exec { + typedef typename storage_t::iterator iterator; + typedef typename compacted_hash::writer writer_t; + typedef token_ring token_ring_t; + + struct thread_info_t { + writer_t writer; + token_ring_t::token *token; + }; + + uint_t threads; + const char *file_prefix; + size_t buffer_size; + uint_t klen, vlen; + uint_t key_len, val_len; + size_t record_len, nb_records; + storage_t *ary; + int file_index; + token_ring_t tr; + uint64_t lower_count, upper_count; + struct thread_info_t *thread_info; + uint64_t volatile unique, distinct, total, max_count; + std::ofstream *out; + bool one_file; + + public: + direct_sorted_dumper(uint_t _threads, const char *_file_prefix, + size_t _buffer_size, uint_t _vlen, storage_t *_ary) : + threads(_threads), file_prefix(_file_prefix), buffer_size(_buffer_size), + klen(_ary->get_key_len()), vlen(_vlen), ary(_ary), + tr() , lower_count(0), upper_count(std::numeric_limits::max()), + one_file(false) + { + key_len = bits_to_bytes(klen); + val_len = bits_to_bytes(vlen); + record_len = key_len + val_len; + nb_records = _buffer_size / record_len; + thread_info = new struct thread_info_t[threads]; + for(uint_t i = 0; i < threads; i++) { + thread_info[i].writer.initialize(nb_records, klen, vlen, ary); + thread_info[i].token = tr.new_token(); + } + unique = distinct = total = max_count = 0; + } + + ~direct_sorted_dumper() { + if(thread_info) + delete[] thread_info; + } + + bool get_one_file() const { return one_file; } + void set_one_file(bool nv) { one_file = nv; } + + void set_lower_count(uint64_t l) { lower_count = l; } + void set_upper_count(uint64_t u) { upper_count = u; } + + virtual void start(int i) { dump_to_file(i); } + void dump_to_file(int i); + + virtual void _dump(); + void update_stats() { + thread_info[0].writer.update_stats_with(out, unique, distinct, total, + max_count); + } + }; + + template + void direct_sorted_dumper::_dump() { + std::ofstream _out; + if(one_file) { + _out.open(file_prefix); + } else { + open_next_file(file_prefix, &file_index, _out); + } + out = &_out; + unique = distinct = total = max_count = 0; + tr.reset(); + thread_info[0].writer.write_header(out); + exec_join(threads); + update_stats(); + _out.close(); + } + + template + void direct_sorted_dumper::dump_to_file(int id) { + size_t i; + struct thread_info_t *my_info = &thread_info[id]; + atomic_t atomic; + + my_info->writer.reset_counters(); + + for(i = id; i * nb_records < ary->get_size(); i += threads) { + iterator it(ary, i * nb_records, (i + 1) * nb_records); + while(it.next()) + if(it.get_val().bits() >= lower_count && it.get_val().bits() <= upper_count) + my_info->writer.append(it.get_key(), it.get_val().bits()); + + my_info->token->wait(); + my_info->writer.dump(out); + my_info->token->pass(); + ary->zero(i * nb_records, nb_records); + } + atomic.add_fetch(&unique, my_info->writer.get_unique()); + atomic.add_fetch(&distinct, my_info->writer.get_distinct()); + atomic.add_fetch(&total, my_info->writer.get_total()); + atomic.set_to_max(&max_count, my_info->writer.get_max_count()); + } +} diff --git a/src/inc/jellyfish/divisor.hpp b/src/inc/jellyfish/divisor.hpp new file mode 100644 index 00000000..9ef45cbe --- /dev/null +++ b/src/inc/jellyfish/divisor.hpp @@ -0,0 +1,135 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_DIVISOR_HPP__ +#define __JELLYFISH_DIVISOR_HPP__ + +#include +#include +#ifdef HAVE_CONFIG_H +#include +#endif + +namespace jellyfish { + class divisor64 { + const uint64_t d_; +#ifdef HAVE_INT128 + const uint16_t p_; + const unsigned __int128 m_; +#endif + + public: + explicit divisor64(uint64_t d) : + d_(d) +#ifdef HAVE_INT128 + , p_(ceilLog2(d_)), + m_((div_ceil((unsigned __int128)1 << (64 + p_), (unsigned __int128)d_)) & (uint64_t)-1) +#endif + { } + + divisor64() : + d_(0) +#ifdef HAVE_INT128 + , p_(0), m_(0) +#endif + { } + + explicit divisor64(const divisor64& rhs) : + d_(rhs.d_) +#ifdef HAVE_INT128 + , p_(rhs.p_), + m_(rhs.m_) +#endif + { } + + inline uint64_t divide(const uint64_t n) const { +#ifdef HAVE_INT128 + switch(m_) { + case 0: + return n >> p_; + default: + const unsigned __int128 n_ = (unsigned __int128)n; + return (n_ + ((n_ * m_) >> 64)) >> p_; + } +#else + return n / d_; +#endif + } + + inline uint64_t remainder(uint64_t n) const { +#ifdef HAVE_INT128 + switch(m_) { + case 0: + return n & (((uint64_t)1 << p_) - 1); + default: + return n - divide(n) * d_; + } +#else + return n % d_; +#endif + } + + // Euclidian division: d.division(n, q, r) sets q <- n / d and r + // <- n % d. This is faster than doing each independently. + inline void division(uint64_t n, uint64_t &q, uint64_t &r) const { +#ifdef HAVE_INT128 + switch(m_) { + case 0: + q = n >> p_; + r = n & (((uint64_t)1 << p_) - 1); + break; + default: + q = divide(n); + r = n - q * d_; + break; + } +#else + q = n / d_; + r = n % d_; +#endif + } + + uint64_t d() const { return d_; } + uint64_t p() const { +#ifdef HAVE_INT128 + return p_; +#else + return 0; +#endif + } + uint64_t m() const { +#ifdef HAVE_INT128 + return m_; +#else + return 0; +#endif + } + }; + + inline uint64_t operator/(uint64_t n, const divisor64& d) { + return d.divide(n); + } + inline uint64_t operator%(uint64_t n, const divisor64& d) { + return d.remainder(n); + } +} + +inline std::ostream& operator<<(std::ostream& os, const jellyfish::divisor64& d) { + return os << "d:" << d.d() << ",p:" << d.p() << ",m:" << d.m(); +} + +#endif /* __JELLYFISH_DIVISOR_HPP__ */ + diff --git a/src/inc/jellyfish/dna_codes.hpp b/src/inc/jellyfish/dna_codes.hpp new file mode 100644 index 00000000..80e92cdd --- /dev/null +++ b/src/inc/jellyfish/dna_codes.hpp @@ -0,0 +1,20 @@ +#ifndef __DNA_CODE_HPP__ +#define __DNA_CODE_HPP__ + +#include +#include + +namespace jellyfish { +static const uint_t CODE_A = 0; +static const uint_t CODE_C = 0; +static const uint_t CODE_G = 0; +static const uint_t CODE_T = 0; +// Non DNA codes have the MSB on +static const uint_t CODE_RESET = (uint_t)-1; +static const uint_t CODE_IGNORE = (uint_t)-2; +static const uint_t CODE_COMMENT = (uint_t)-3; +static const uint_t CODE_NOT_DNA = ((uint_t)1) << (bsizeof(uint_t) - 1); +extern const char dna_codes[256]; +}; + +#endif /* __DNA_CODE_HPP__ */ diff --git a/src/inc/jellyfish/double_fifo_input.hpp b/src/inc/jellyfish/double_fifo_input.hpp new file mode 100644 index 00000000..19fa2b87 --- /dev/null +++ b/src/inc/jellyfish/double_fifo_input.hpp @@ -0,0 +1,192 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_DOUBLE_FIFO_INPUT__ +#define __JELLYFISH_DOUBLE_FIFO_INPUT__ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +namespace jellyfish { + /* Double lock free fifo containing elements of type T. + * + * The input thread, created by this class, runs the virtual + * function 'fill' to fill up tockens from the wq (to be Written + * tocken Queue) and append then into the rq (to be Read tocken + * Queue). + * + * next() returns a pointer to a filled tocken. If the queue is + * empty, it will sleep some (start with 1/100th +/- 50%, and + * exponential back off) to give time for the queue to fill up. + */ + template + class double_fifo_input { + define_error_class(Error); + typedef concurrent_queue queue; + + // The only transitions are: + // WORKING -> SLEEPING -> WAKENING -> WORKING + enum state_t { WORKING, SLEEPING, WAKENING }; + + queue rq, wq; + T * buckets; + const unsigned long nb_buckets; + state_t volatile state; + pthread_t input_id; + locks::pthread::cond full_queue; + + static void *static_input_routine(void *arg); + void input_routine(); + + public: + typedef T bucket_t; + explicit double_fifo_input(unsigned long _nb_buckets); + virtual ~double_fifo_input(); + + virtual void fill() = 0; + T *next(); + void release(T *bucket); + bool is_closed() { return rq.is_closed(); } + + typedef T *bucket_iterator; + bucket_iterator bucket_begin() const { return buckets; } + bucket_iterator bucket_end() const { return buckets + nb_buckets; } + + protected: + // Get bucket to fill and release. + T *write_next(); + void write_release(T *bucket); + void close() { rq.close(); } + + private: + // Wake up input thread if it was sleeping. Returns previous + // state. + state_t input_wake(); + }; + + /****/ + + template + double_fifo_input::double_fifo_input(unsigned long _nb_buckets) : + rq(_nb_buckets), wq(_nb_buckets), nb_buckets(_nb_buckets), state(WORKING), + input_id(0) + { + buckets = new T[nb_buckets]; + + for(unsigned long i = 0; i < nb_buckets; ++i) + wq.enqueue(&buckets[i]); + + if(pthread_create(&input_id, 0, static_input_routine, (void *)this) != 0) + eraise(Error) << "Failed creating input thread" << err::no; + } + + template + double_fifo_input::~double_fifo_input() { + if(input_id) + if(pthread_cancel(input_id)) { + void *input_return; + pthread_join(input_id, &input_return); + } + delete [] buckets; + } + + template + void *double_fifo_input::static_input_routine(void *arg) { + double_fifo_input *o = (double_fifo_input *)arg; + o->input_routine(); + return 0; + } + + template + void double_fifo_input::input_routine() { + state_t prev_state; + + while(!rq.is_closed()) { + // The write queue is full or this is the first iteration, sleep + // until it become less than some threshold + full_queue.lock(); + prev_state = atomic::gcc::cas(&state, WORKING, SLEEPING); + assert(prev_state == WORKING); + do { + full_queue.wait(); + } while(state != WAKENING); + prev_state = atomic::gcc::cas(&state, WAKENING, WORKING); + assert(prev_state == WAKENING); + full_queue.unlock(); + + fill(); + } + } + + template + typename double_fifo_input::state_t double_fifo_input::input_wake() { + state_t prev_state = atomic::gcc::cas(&state, SLEEPING, WAKENING); + assert(prev_state >= WORKING && prev_state <= WAKENING); + if(prev_state == SLEEPING) { + full_queue.lock(); + full_queue.signal(); + full_queue.unlock(); + } + return prev_state; + } + + template + T *double_fifo_input::next() { + if(rq.is_low()) // && !rq.is_closed()) + input_wake(); + + T *res = 0; + while(!(res = rq.dequeue())) { + if(rq.is_closed()) + return 0; + input_wake(); + // TODO Should we wait on a lock instead when the input thread is + // already in working state (i.e. it is most likely blocked on + // some I/O). + static struct timespec time_sleep = { 0, 10000000 }; + nanosleep(&time_sleep, NULL); + } + + return res; + } + + template + void double_fifo_input::release(T *bucket) { + assert(bucket - buckets >= 0 && (unsigned long)(bucket - buckets) < nb_buckets); + wq.enqueue(bucket); + } + + template + T *double_fifo_input::write_next() { + return wq.dequeue(); + } + + template + void double_fifo_input::write_release(T *bucket) { + assert(bucket - buckets >= 0 && (unsigned long)(bucket - buckets) < nb_buckets); + rq.enqueue(bucket); + } +} + +#endif diff --git a/src/inc/jellyfish/dumper.hpp b/src/inc/jellyfish/dumper.hpp new file mode 100644 index 00000000..47b80980 --- /dev/null +++ b/src/inc/jellyfish/dumper.hpp @@ -0,0 +1,74 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_DUMPER_HPP__ +#define __JELLYFISH_DUMPER_HPP__ + +#include +#include +#include +#include + +/** + * A dumper is responsible to dump the hash array to permanent storage + * and zero out the array. + **/ +namespace jellyfish { + class dumper_t { + Time writing_time; + public: + define_error_class(ErrorWriting); + + protected: + void open_next_file(const char *prefix, int *index, std::ofstream &out) { + static const long file_len = pathconf("/", _PC_PATH_MAX); + + char file[file_len + 1]; + file[file_len] = '\0'; + int off = snprintf(file, file_len, "%s", prefix); + if(off < 0) + eraise(ErrorWriting) << "Error creating output path" << err::no; + if(off > 0 && off < file_len) { + int eindex = atomic::gcc::fetch_add(index, (int)1); + int _off = snprintf(file + off, file_len - off, "_%d", eindex); + if(_off < 0) + eraise(ErrorWriting) << "Error creating output path" << err::no; + off += _off; + } + if(off >= file_len) + eraise(ErrorWriting) << "Output path is longer than maximum path length (" + << off << " > " << file_len << ")"; + + out.open(file); + if(out.fail()) + eraise(ErrorWriting) << "'" << (char*)file << "': " + << "Can't open file for writing" << err::no; + } + + public: + dumper_t() : writing_time(::Time::zero) {} + void dump() { + Time start; + _dump(); + Time end; + writing_time += end - start; + } + virtual void _dump() = 0; + Time get_writing_time() const { return writing_time; } + virtual ~dumper_t() {}; + }; +} +#endif // __DUMPER_HPP__ diff --git a/src/inc/jellyfish/err.hpp b/src/inc/jellyfish/err.hpp new file mode 100644 index 00000000..50e4bf99 --- /dev/null +++ b/src/inc/jellyfish/err.hpp @@ -0,0 +1,120 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __ERR_HPP__ +#define __ERR_HPP__ + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace err { + class code { + int _code; + public: + explicit code(int c) : _code(c) {} + int get_code() const { return _code; } + }; + + class no_t { + public: + no_t() {} + static void write(std::ostream &os, int e) { + char err_str[4096]; + strerror_r(e, err_str, sizeof(err_str)); + os << ": " << err_str; + } + }; + static const no_t no; + std::ostream &operator<<(std::ostream &os, const err::no_t &x); + + class substr { + const char *_s; + const size_t _l; + public: + substr(const char *s, size_t len) : _s(s), _l(len) {} + friend std::ostream &operator<<(std::ostream &os, const substr &ss); + }; + + class die_t { + int _code; + int _errno; + public: + die_t() : _code(1), _errno(errno) {} + explicit die_t(int c) : _code(c), _errno(errno) {} + ~die_t() { + std::cerr << std::endl; + exit(_code); + } + + die_t & operator<<(const code &x) { + _code = x.get_code(); + return *this; + } + die_t & operator<<(const no_t &x) { + x.write(std::cerr, _errno); + return *this; + } + die_t & operator<<(const char *a[]) { + for(int i = 0; a[i]; i++) + std::cerr << (i ? "\n" : "") << a[i]; + return *this; + } + die_t & operator<<(const std::exception &e) { + std::cerr << e.what(); + return *this; + } + template + die_t & operator<<(const T &x) { + std::cerr << x; + return *this; + } + }; + + template + class raise_t { + int _errno; + std::ostringstream oss; + public: + raise_t() : _errno(errno) {} + ~raise_t() { throw err_t(oss.str()); } + + raise_t & operator<<(const no_t &x) { + x.write(oss, _errno); + return *this; + } + template + raise_t & operator<<(const T &x) { + oss << x; + return *this; + } + }; +} + + +#define die if(1) err::die_t() +#define eraise(e) if(1) err::raise_t() +#define define_error_class(name) \ + class name : public std::runtime_error { \ + public: explicit name(const std::string &txt) : std::runtime_error(txt) {} \ + } + +#endif diff --git a/src/inc/jellyfish/fastq_dumper.hpp b/src/inc/jellyfish/fastq_dumper.hpp new file mode 100644 index 00000000..1613f172 --- /dev/null +++ b/src/inc/jellyfish/fastq_dumper.hpp @@ -0,0 +1,131 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __FASTQ_DUMPER_HPP__ +#define __FASTQ_DUMPER_HPP__ + +#include +#include +#include +#include + +namespace jellyfish { + namespace fastq_hash { + define_error_class(ErrorReading); + static const char *file_type = "JFFSTQDN"; + struct header { + char type[8]; + uint64_t key_len; + uint64_t size; + uint64_t max_reprobes; + uint64_t values_pos; + + header(uint64_t _key_len, uint64_t _size, uint64_t _max_reprobes, + uint64_t _values_pos) : + key_len(_key_len), size(_size), max_reprobes(_max_reprobes), + values_pos(_values_pos) + { + memcpy(&type, file_type, sizeof(type)); + } + + explicit header(const char *ptr) { + if(memcmp(ptr, file_type, sizeof(type))) + eraise(ErrorReading) << "Bad file type '" << err::substr(ptr, sizeof(type)) + << "', expected '" << err::substr(file_type, sizeof(type)) << "'"; + memcpy((void *)this, ptr, sizeof(struct header)); + } + }; + + template + class raw_dumper : public dumper_t { + const uint_t threads; + const std::string file_prefix; + storage_t *const ary; + int file_index; + + public: + raw_dumper(uint_t _threads, const char *_file_prefix, size_t chunk_size, + storage_t *_ary) : + threads(_threads), file_prefix(_file_prefix), + ary(_ary), file_index(0) {} + + virtual void _dump(); + + static storage_t * read(const mapped_file &file); + static storage_t * read(const std::string &file); + static storage_t * read(const char *file); + }; + + template + void raw_dumper::_dump() { + std::ofstream _out; + open_next_file(file_prefix.c_str(), &file_index, _out); + + // TODO: the zeroing out of the hash is not parallelized. + + // Skip header + _out.seekp(sizeof(struct header)); + // Write matrices + ary->write_matrices(&_out); + // Write key set + ary->write_keys_blocks(&_out, 0, ary->get_size()); + std::streampos pos = _out.tellp(); + ary->zero_keys(0, ary->get_size()); + // Write values array + ary->write_values(&_out, 0, ary->get_size()); + ary->zero_values(0, ary->get_size()); + // Update header + _out.seekp(0); + struct header header(ary->get_key_len(), ary->get_size(), + ary->get_max_reprobe(), pos); + _out.write((char *)&header, sizeof(header)); + _out.close(); + } + + template + storage_t * raw_dumper::read(const std::string &file) { + mapped_file mf(file.c_str()); + return read(mf); + } + + template + storage_t * raw_dumper::read(const char *file) { + mapped_file mf(file); + return read(mf); + } + + template + storage_t * raw_dumper::read(const mapped_file &mf) { + if(mf.length() < sizeof(struct header)) + eraise(ErrorReading) << "File '" << mf.path() + << "' too short. Should be at least '" + << sizeof(struct header) << "' bytes"; + + struct header header(mf.base()); + size_t off = sizeof(header); + SquareBinaryMatrix hash_matrix, hash_inv_matrix; + off += hash_matrix.read(mf.base() + off); + off += hash_inv_matrix.read(mf.base() + off); + return new storage_t(mf.base() + off, + mf.base() + header.values_pos, + header.size, header.key_len, header.max_reprobes, + jellyfish::quadratic_reprobes, hash_matrix, + hash_inv_matrix); + } + } +} + +#endif diff --git a/src/inc/jellyfish/file_parser.hpp b/src/inc/jellyfish/file_parser.hpp new file mode 100644 index 00000000..a6cdd37c --- /dev/null +++ b/src/inc/jellyfish/file_parser.hpp @@ -0,0 +1,92 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_FILE_PARSER_HPP__ +#define __JELLYFISH_FILE_PARSER_HPP__ + +#include +#include +#include + +#include +#include +#include + +namespace jellyfish { + class file_parser { + int _fd; + int _base, _pbase; + char *_buffer; + const char *_end_buffer; + const char *_data; + const char *_end_data; + size_t _size; + bool _is_mmapped; + + static bool _do_mmap; + static bool _force_mmap; + + protected: + define_error_class(FileParserError); + // Get next character in "stream" + inline int sbumpc() { + _pbase = _base; + if(_data >= _end_data) + if(!read_next_buffer()) + return _base = _eof; + return (_base = *_data++); + } + int speekc() { + if(_data >= _end_data) + if(!read_next_buffer()) + return _eof; + return *_data; + } + + + public: + static const size_t _buff_size = 1024 * 1024; + static const int _eof = -1; + + // [str, str+len) is content on initial buffer + file_parser(int fd, const char *path, const char *str, size_t len, + char pbase = '\n'); + ~file_parser(); + + static bool do_mmap() { return _do_mmap; }; + static bool do_mmap(bool new_value) { bool oval = _do_mmap; _do_mmap = new_value; return oval; } + // throw an error if mmap fails + static bool force_mmap(); + static bool force_mmap(bool new_value); + static int file_peek(const char *path, char *peek); + + // current base and previous base + int base() const { return _base; } + int pbase() const { return _pbase; } + bool eof() const { return _base == _eof; } + + // ptr to base. Valid only for mmaped files + const char *ptr() const { return _data; } + const char *base_ptr() const { return _data - 1; } + const char *pbase_ptr() const { return _data; } + + private: + // Buffers next chunk of data. Returns _eof if at end of file or next character + bool read_next_buffer(); + }; +} + +#endif diff --git a/src/inc/jellyfish/floats.hpp b/src/inc/jellyfish/floats.hpp new file mode 100644 index 00000000..06042c27 --- /dev/null +++ b/src/inc/jellyfish/floats.hpp @@ -0,0 +1,71 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_FLOATS_HPP__ +#define __JELLYFISH_FLOATS_HPP__ + +#include +#include +#ifdef HALF_FLOATS +#include +#endif + +namespace jellyfish { + class Float { + public: +#ifdef HALF_FLOATS + typedef uint16_t bits_t; + typedef half float_t; +#else + typedef uint32_t bits_t; + typedef float float_t; +#endif + + private: + union float_int { + float_t fv; + bits_t iv; + explicit float_int(float_t v) : fv(v) {} + explicit float_int(bits_t v) : iv(v) {} + }; + float_int v; + + public: + Float() : v(0.0f) {} + explicit Float(int _v) : v((bits_t)_v) {} + explicit Float(float_t _v) : v(_v) {} + explicit Float(bits_t _v) : v(_v) {} + + // static const Float zero; + // static const Float one; + + const Float operator+(const Float &y) const { + return Float(v.fv + y.v.fv); + } + const Float operator+(const float& y) const { + return Float(v.fv + y); + } + + bits_t bits() const { return v.iv; }; + float_t to_float() const { return v.fv; }; + + // Should we use the floating point ==? + bool operator==(Float o) { return v.iv == o.v.iv; } + friend std::ostream &operator<<(std::ostream &os, const Float &f); + }; +} + +#endif diff --git a/src/inc/jellyfish/fstream_default.hpp b/src/inc/jellyfish/fstream_default.hpp new file mode 100644 index 00000000..0ac298ea --- /dev/null +++ b/src/inc/jellyfish/fstream_default.hpp @@ -0,0 +1,68 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_FSTREAM_WITH_DEFAULT_HPP__ +#define __JELLYFISH_FSTREAM_WITH_DEFAULT_HPP__ + +#include +#include + +template +class fstream_default : public Base { + typedef Base super; + static std::streambuf* open_file(const char* str, std::ios_base::openmode mode) { + std::filebuf* fb = new std::filebuf; + return fb->open(str, mode); + } + + static std::streambuf* get_streambuf(const char* str, Base& def, + std::ios_base::openmode mode) { + return (str != 0) ? open_file(str, mode) : def.rdbuf(); + } + static std::streambuf* get_streambuf(const char* str, std::streambuf* buf, + std::ios_base::openmode mode) { + return (str != 0) ? open_file(str, mode) : buf; + } + + bool do_close; +public: + fstream_default(const char* str, Base& def, std::ios_base::openmode mode = def_mode) : + Base(get_streambuf(str, def, mode)), do_close(str != 0) { + if(Base::rdbuf() == 0) + Base::setstate(std::ios_base::badbit); + } + fstream_default(const char* str, std::streambuf* def, std::ios_base::openmode mode = def_mode) : + Base(get_streambuf(str, def, mode)), do_close(str != 0) { + if(Base::rdbuf() == 0) + Base::setstate(std::ios_base::badbit); + } + + ~fstream_default() { + if(do_close) { + delete Base::rdbuf(0); + do_close = false; + } + } + // Close is a noop at this point as GCC 4.4 has a problem with + // Base::rdbuf in methods (breaks strict aliasing). Beats me! I + // think it is a false positive. + void close() {} +}; + +typedef fstream_default ofstream_default; +typedef fstream_default ifstream_default; + +#endif // __JELLYFISH_FSTREAM_WITH_DEFAULT_HPP__ diff --git a/src/inc/jellyfish/hash.hpp b/src/inc/jellyfish/hash.hpp new file mode 100644 index 00000000..6daeb7aa --- /dev/null +++ b/src/inc/jellyfish/hash.hpp @@ -0,0 +1,253 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_HASH_HPP__ +#define __JELLYFISH_HASH_HPP__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace jellyfish { + /* Wrapper around a "storage". The hash class manages threads. In + particular, it synchronizes the threads for the size-doubling + operation and manages dumping the hash to disk. The storage class + is reponsible for the details of storing the key,value pairs, + memory management, reprobing, etc. + */ + + class hash_t { + public: + virtual ~hash_t() {} + }; + + template + class hash : public hash_t { + public: + define_error_class(TableFull); + // typedef typename std::pair kv_t; + typedef ary_t storage_t; + typedef typename ary_t::iterator iterator; + + hash() : ary(NULL), dumper(NULL), dumping_initiated(false) {} + explicit hash(ary_t *_ary) : ary(_ary), dumper(NULL), dumping_initiated(false) {} + + virtual ~hash() {} + + size_t get_size() const { return ary->get_size(); } + uint_t get_key_len() const { return ary->get_key_len(); } + uint_t get_val_len() const { return ary->get_val_len(); } + uint_t get_max_reprobe() const { return ary->get_max_reprobe(); } + size_t get_max_reprobe_offset() const { return ary->get_max_reprobe_offset(); } + + void set_dumper(dumper_t *new_dumper) { dumper = new_dumper; } + Time get_writing_time() const { + if(!dumper) + return Time::zero; + return dumper->get_writing_time(); + } + + void write_raw(std::ostream &out) { ary->write_raw(out); } + + iterator iterator_all() const { return ary->iterator_all(); } + iterator iterator_slice(size_t slice_number, size_t number_of_slice) const { + return ary->iterator_slice(slice_number, number_of_slice); + } + + /* + * Thread handle to the hash. + */ + enum status_t { FREE, INUSE, BLOCKED }; + class thread { + ary_t *ary; + size_t hsize_mask; + status_t status; + status_t ostatus; + hash *my_hash; + + public: + typedef val_t val_type; + thread(ary_t *_ary, hash *_my_hash) : + ary(_ary), hsize_mask(ary->get_size() - 1), status(FREE), my_hash(_my_hash) + { } + + // Add val to the value associated with key. Returns the old + // value in *oval if oval is not NULL + template + inline void add(key_t key, const add_t &val, val_t *oval = 0) { + while(true) { + while(atomic::cas(&status, FREE, INUSE) != FREE) + my_hash->wait_event_is_done(); + + if(ary->add(key, val, oval)) + break; + + // Improve this. Undefined behavior if dump_to_file throws an error. + if(my_hash->get_event_locks()) { + my_hash->dump(); + my_hash->release_event_locks(); + } + } + + if(atomic::cas(&status, INUSE, FREE) != INUSE) + my_hash->signal_not_in_use(); + } + + // void inc(key_t key, val_t *oval = 0) { return this->add(key, (add_t)1, oval); } + // inline void operator()(key_t key) { return this->add(key, (val_t)1); } + + friend class hash; + }; + friend class thread; + typedef std::list thread_list_t; + class thread_ptr_t : public thread_list_t::iterator { + public: + explicit thread_ptr_t(const typename thread_list_t::iterator &thl) : thread_list_t::iterator(thl) {} + typedef val_t val_type; + }; + // typedef typename thread_list_t::iterator thread_ptr_t; + + thread_ptr_t new_thread() { + user_thread_lock.lock(); + thread_ptr_t res(user_thread_list.insert(user_thread_list.begin(), thread(ary, this))); + user_thread_lock.unlock(); + return res; + } + + void release_thread(thread_ptr_t &th) { + user_thread_lock.lock(); + user_thread_list.erase(th); + user_thread_lock.unlock(); + } + + void dump() { + if(dumper) + dumper->dump(); + else + eraise(TableFull) << "No dumper defined"; + } + + private: + /** + * The following methods are called by threads to manage + * administrative events: size doubling or dumping the hash to + * disk. + **/ + + /** + * Called by a thread if it failed to switch its states from INUSE + * to FREE. It lets the thread triggering the event that the hash + * is free. This method returns after the signaling and does not + * wait for the handling of the event to be over. + **/ + void signal_not_in_use(bool take_inuse_lock = true) { + if(take_inuse_lock) + inuse_thread_cond.lock(); + if(--inuse_thread_count == 0) + inuse_thread_cond.signal(); + inuse_thread_cond.unlock(); + } + + /** + * Called by a thread if it failed to switch its states from FREE + * to INUSE. An event management has been initiated. This call + * waits for the event handling to be over. + **/ + void wait_event_is_done(bool take_event_lock = true) { + if(take_event_lock) + event_cond.lock(); + while(dumping_initiated) + event_cond.wait(); + event_cond.unlock(); + } + + /** + * Get the locks before handling an event and returns true if + * success. It guarantees than no thread is doing an operation on + * the hash. If another thread is already handling an event, + * degrade to wait_event_is_done and returns false. + **/ + bool get_event_locks() { + inuse_thread_cond.lock(); + event_cond.lock(); + if(dumping_initiated) { + // Another thread is doing the dumping + signal_not_in_use(false); + wait_event_is_done(false); + return false; + } + + // I am the thread doing the dumping + user_thread_lock.lock(); + dumping_initiated = true; + event_cond.unlock(); + + inuse_thread_count = 0; + + // Block access to hash and wait for threads with INUSE state + for(thread_ptr_t it(user_thread_list.begin()); + it != user_thread_list.end(); + it++) { + it->ostatus = atomic::set(&it->status, BLOCKED); + if(it->ostatus == INUSE) + inuse_thread_count++; + } + inuse_thread_count--; // Remove 1 for myself! + while(inuse_thread_count > 0) { + inuse_thread_cond.wait(); + } + inuse_thread_cond.unlock(); + + return true; + } + + void release_event_locks() { + event_cond.lock(); + for(thread_ptr_t it(user_thread_list.begin()); + it != user_thread_list.end(); + it++) { + atomic::set(&it->status, FREE); + } + user_thread_lock.unlock(); + dumping_initiated = false; + event_cond.broadcast(); + event_cond.unlock(); + } + + private: + ary_t *ary; + dumper_t *dumper; + volatile bool dumping_initiated; + thread_list_t user_thread_list; + locks::pthread::mutex user_thread_lock; + locks::pthread::cond event_cond; + locks::pthread::cond inuse_thread_cond; + volatile uint_t inuse_thread_count; + }; +} + +#endif // __HASH_HPP__ diff --git a/src/inc/jellyfish/heap.hpp b/src/inc/jellyfish/heap.hpp new file mode 100644 index 00000000..cae37f1c --- /dev/null +++ b/src/inc/jellyfish/heap.hpp @@ -0,0 +1,125 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_HEAP_HPP__ +#define __JELLYFISH_HEAP_HPP__ + +#include + +namespace jellyfish { + template + struct heap_item_t { + uint64_t key; + uint64_t val; + uint64_t pos; + iterator *it; + + heap_item_t() : key(0), val(0), pos(0) { } + + explicit heap_item_t(iterator &iter) { + initialize(iter); + } + + void initialize(iterator &iter) { + key = iter.key; + val = iter.val; + pos = iter.get_pos(); + it = &iter; + } + + // STL make_heap creates a max heap. We want a min heap, so + // reverse comparator! + bool operator<(const heap_item_t & other) { + if(pos == other.pos) + return key > other.key; + return pos > other.pos; + } + }; + + template + class heap_item_compare { + public: + inline bool operator() (heap_item_t *i1, heap_item_t *i2) { + return *i1 < *i2; + } + }; + + template + class heap_t { + heap_item_t *storage; + heap_item_t **elts; + size_t capacity_; + size_t h; + heap_item_compare compare; + public: + typedef const heap_item_t *const_item_t; + + heap_t() : storage(0), elts(0), capacity_(0), h(0) { } + explicit heap_t(size_t _capacity) { initialize(_capacity); } + ~heap_t() { + delete[] storage; + delete[] elts; + } + + void initialize(size_t _capacity) { + capacity_ = _capacity; + h = 0; + storage = new heap_item_t[capacity_]; + elts = new heap_item_t*[capacity_]; + for(size_t h1 = 0; h1 < capacity_; ++h1) + elts[h1] = &storage[h1]; + } + + void fill(iterator &it) { + h = 0; + while(h < capacity_) { + if(!it.next()) + break; + storage[h].initialize(it); + elts[h] = &storage[h]; + h++; + } + std::make_heap(elts, elts + h, compare); + } + template + void fill(ForwardIterator first, ForwardIterator last) { + h = 0; + while(h < capacity_ && first != last) { + if(!first->next()) + break; + storage[h].initialize(*first++); + elts[h] = &storage[h]; + h++; + } + std::make_heap(elts, elts + h, compare); + } + + bool is_empty() const { return h == 0; } + bool is_not_empty() const { return h > 0; } + size_t size() const { return h; } + size_t capacity() const { return capacity_; } + + // The following 3 should only be used after fill has been called + const_item_t head() const { return elts[0]; } + void pop() { std::pop_heap(elts, elts + h--, compare); } + void push(iterator &item) { + elts[h]->initialize(item); + std::push_heap(elts, elts + ++h, compare); + } + }; +} + +#endif // __HEAP_HPP__ diff --git a/src/inc/jellyfish/invertible_hash_array.hpp b/src/inc/jellyfish/invertible_hash_array.hpp new file mode 100644 index 00000000..f86f3f45 --- /dev/null +++ b/src/inc/jellyfish/invertible_hash_array.hpp @@ -0,0 +1,1015 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_REVERSIBLE_HASH__ +#define __JELLYFISH_REVERSIBLE_HASH__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace jellyfish { + namespace invertible_hash { + define_error_class(InvalidMap); + define_error_class(ErrorAllocation); + define_error_class(InvalidMatrix); + + /* Contains an integer, the reprobe limit. It is capped based on + * the reprobe strategy to not be bigger than the size of the hash + * array. + */ + class reprobe_limit_t { + uint_t limit; + public: + reprobe_limit_t(uint_t _limit, size_t *_reprobes, size_t _size) : + limit(_limit) + { + while(_reprobes[limit] >= _size && limit >= 1) + limit--; + } + inline uint_t val() const { return limit; } + }; + + /* (key,value) pair bit-packed array. It implements the logic of the + * packed hash except for size doubling. Setting or incrementing a key + * will return false if the hash is full. No memory management is done + * in this class either. + * + * The hash function is assumed to be invertible. The key is not + * directly stored in the hash. Let h = hash(key), size_table = + * 2**k and key_len = h+k. In the key field is written + * + * h high bits of h, reprobe value + 1 + * + * The +1 for the reprobe value is so that the field is guaranteed + * not to be zero. + */ + template + class array : public storage_t { + typedef typename Offsets::offset_t offset_t; + uint_t lsize; // log of size + size_t size, size_mask; + reprobe_limit_t reprobe_limit; + uint_t key_len; // original key len + word key_mask; // mask for high bits of hash(key) + uint_t key_off; // offset in key field for reprobe value + Offsets offsets; // key len reduced by size of hash array + mem_block_t mem_block; + word *data; + atomic_t atomic; + size_t *reprobes; + SquareBinaryMatrix hash_matrix; + SquareBinaryMatrix hash_inverse_matrix; + struct header { + uint64_t klen; + uint64_t clen; + uint64_t size; + uint64_t reprobe_limit; + }; + + public: + typedef word key_t; + typedef word val_t; + + array(size_t _size, uint_t _key_len, uint_t _val_len, + uint_t _reprobe_limit, size_t *_reprobes) : + lsize(ceilLog2(_size)), size(((size_t)1) << lsize), + size_mask(size - 1), + reprobe_limit(_reprobe_limit, _reprobes, size), key_len(_key_len), + key_mask(key_len <= lsize ? 0 : (((word)1) << (key_len - lsize)) - 1), + key_off(key_len <= lsize ? 0 : key_len - lsize), + offsets(key_off + bitsize(reprobe_limit.val() + 1), _val_len, + reprobe_limit.val() + 1), + mem_block(div_ceil(size, (size_t)offsets.get_block_len()) * offsets.get_block_word_len() * sizeof(word)), + data((word *)mem_block.get_ptr()), reprobes(_reprobes), + hash_matrix(key_len), + hash_inverse_matrix(hash_matrix.init_random_inverse()) + { + if(!data) + eraise(ErrorAllocation) << "Failed to allocate " + << (div_ceil(size, (size_t)offsets.get_block_len()) * offsets.get_block_word_len() * sizeof(word)) + << " bytes of memory"; + } + + // TODO: This parsing should be done in another class and use + // the following constructor. + // array(char *map, size_t length) : + // hash_matrix(0), hash_inverse_matrix(0) { + // if(length < sizeof(struct header)) + // eraise(InvalidMap) << "File truncated"; + // struct header *header = (struct header *)map; + // size = header->size; + // if(size != (1UL << floorLog2(size))) + // eraise(InvalidMap) << "Size '" << size << "' is not a power of 2"; + // lsize = ceilLog2(size); + // size_mask = size - 1; + // reprobe_limit = header->reprobe_limit; + // key_len = header->klen; + // if(key_len > 64 || key_len == 0) + // eraise(InvalidMap) << "Invalid key length '" << key_len << "'"; + // offsets.init(key_len + bitsize(reprobe_limit + 1) - lsize, header->clen, + // reprobe_limit); + // key_mask = (((word)1) << (key_len - lsize)) - 1; + // key_off = key_len - lsize; + // map += sizeof(struct header); + // // reprobes = new size_t[header->reprobe_limit + 1]; + // // TODO: should that be in the database file? + // reprobes = jellyfish::quadratic_reprobes; + // // memcpy(reprobes, map, sizeof(size_t) * (header->reprobe_limit + 1)); + // // map += sizeof(size_t) * (header->reprobe_limit + 1); + // map += hash_matrix.read(map); + // if((uint_t)hash_matrix.get_size() != key_len) + // eraise(InvalidMatrix) << "Size of hash matrix '" << hash_matrix.get_size() + // << "' not equal to key length '" << key_len << "'"; + // map += hash_inverse_matrix.read(map); + // if((uint_t)hash_inverse_matrix.get_size() != key_len) + // eraise(InvalidMatrix) << "Size of inverse hash matrix '" << hash_inverse_matrix.get_size() + // << "' not equal to key length '" << key_len << "'"; + // if((size_t)map & 0x7) + // map += 0x8 - ((size_t)map & 0x7); // Make sure aligned for 64bits word. TODO: use alignof? + // data = (word *)map; + // } + + // Assume _size is already a power of 2 + // map must point to a memory area written by "write_blocks". No header + array(char *map, size_t _size, uint_t _key_len, uint_t _val_len, + uint_t _reprobe_limit, size_t *_reprobes, + SquareBinaryMatrix &_hash_matrix, + SquareBinaryMatrix &_hash_inverse_matrix) : + lsize(ceilLog2(_size)), size(_size), size_mask(size-1), + reprobe_limit(_reprobe_limit, _reprobes, size), key_len(_key_len), + key_mask(key_len <= lsize ? 0 : (((word)1) << (key_len - lsize)) - 1), + key_off(key_len <= lsize ? 0 : key_len - lsize), + offsets(key_off + bitsize(reprobe_limit.val() + 1), _val_len, + reprobe_limit.val() + 1), + data((word *)map), reprobes(_reprobes), + hash_matrix(_hash_matrix), hash_inverse_matrix(_hash_inverse_matrix) + { } + + ~array() { } + + // Lock in memory + int lock() { + return mem_block.lock(); + } + + void set_matrix(SquareBinaryMatrix &m) { + if((uint_t)m.get_size() != key_len) + eraise(InvalidMatrix) << "Size of matrix '" << m.get_size() + << "' not equal to key length '" << key_len << "'"; + hash_matrix = m; + hash_inverse_matrix = m.inverse(); + } + + size_t get_size() const { return size; } + size_t get_lsize() const { return lsize; } + uint_t get_key_len() const { return key_len; } + uint_t get_val_len() const { return offsets.get_val_len(); } + + uint_t get_max_reprobe() const { return reprobe_limit.val(); } + size_t get_max_reprobe_offset() const { + return reprobes[reprobe_limit.val()]; + } + + + uint_t get_block_len() const { return offsets.get_block_len(); } + uint_t get_block_word_len() const { return offsets.get_block_word_len(); } + size_t floor_block(size_t entries, size_t &blocks) const { + return offsets.floor_block(entries, blocks); + } + + private: + void block_to_ptr(const size_t start, const size_t blen, + char **start_ptr, size_t *memlen) const { + *start_ptr = (char *)(data + start * offsets.get_block_word_len()); + char *end_ptr = (char *)mem_block.get_ptr() + mem_block.get_size(); + + if(*start_ptr >= end_ptr) { + *memlen = 0; + return; + } + *memlen = blen * offsets.get_block_word_len() * sizeof(word); + if(*start_ptr + *memlen > end_ptr) + *memlen = end_ptr - *start_ptr; + } + + public: + /** + * Zero out blocks in [start, start+length), where start and + * length are given in number of blocks. + **/ + void zero_blocks(const size_t start, const size_t length) { + char *start_ptr; + size_t memlen; + block_to_ptr(start, length, &start_ptr, &memlen); + memset(start_ptr, '\0', memlen); + } + + /** + * Write to out blocks [start, start+length). + */ + void write_blocks(std::ostream *out, const size_t start, const size_t length) const { + char *start_ptr; + size_t memlen; + block_to_ptr(start, length, &start_ptr, &memlen); + out->write(start_ptr, memlen); + } + + // Iterator + class iterator { + protected: + const array *ary; + size_t start_id, nid, end_id; + uint64_t mask; + char dna_str[33]; + public: + word key; + word val; + size_t id; + uint64_t hash; + + iterator(const array *_ary, size_t start, size_t end) : + ary(_ary), + start_id(start > ary->get_size() ? ary->get_size() : start), + nid(start), + end_id(end > ary->get_size() ? ary->get_size() : end), + mask(ary->get_size() - 1) + {} + + void get_string(char *out) const { + parse_dna::mer_binary_to_string(key, ary->get_key_len() / 2, out); + } + uint64_t get_hash() const { return hash; } + uint64_t get_pos() const { return hash & mask; } + uint64_t get_start() const { return start_id; } + uint64_t get_end() const { return end_id; } + word get_key() const { return key; } + word get_val() const { return val; } + size_t get_id() const { return id; } + char *get_dna_str() { + parse_dna::mer_binary_to_string(key, ary->get_key_len() / 2, dna_str); + return dna_str; + } + + bool next() { + bool success; + while((id = nid) < end_id) { + nid++; + success = ary->get_key_val_full(id, key, val); + if(success) { + hash = (key & ary->key_mask) << ary->lsize; + uint_t reprobep = (key >> ary->key_off) - 1; + hash |= (id - (reprobep > 0 ? ary->reprobes[reprobep] : 0)) & ary->size_mask; + key = ary->hash_inverse_matrix.times(hash); + return true; + } + } + return false; + } + }; + friend class iterator; + iterator iterator_all() const { return iterator(this, 0, get_size()); } + iterator iterator_slice(size_t slice_number, size_t number_of_slice) const { + std::pair res = slice(slice_number, number_of_slice, get_size()); + return iterator(this, res.first, res.second); + } + + /* Why on earth doesn't inheritance with : public iterator work + here? Resort to copying code. Arrrgggg.... + */ + class overlap_iterator { + protected: + const array *ary; + uint64_t mask; + size_t start_id, end_id, start_oid; + size_t moid, oid; + public: + word key; + word val; + size_t id; + uint64_t hash; + + overlap_iterator(const array *_ary, size_t start, size_t end) : + ary(_ary), + mask(ary->get_size() - 1), + start_id(start), + end_id(end > ary->get_size() ? ary->get_size() : end), + start_oid(start), + moid(end_id - start_id + ary->get_max_reprobe_offset()), + oid(0) + { + // Adjust for very small arrays and it overlaps with itself + if(moid > ary->get_size() - start_id) { + size_t last_id = (start_id + moid) % mask; + if(last_id > start_id) + moid -= last_id - start_id - 1; + } + } + + void get_string(char *out) const { + parse_dna::mer_binary_to_string(key, ary->get_key_len() / 2, out); + } + uint64_t get_hash() const { return hash; } + uint64_t get_pos() const { return hash & mask; } + uint64_t get_start() const { return start_id; } + uint64_t get_end() const { return end_id; } + + bool next() { + bool success; + while(oid < moid) { + id = (start_oid + oid++) & mask; + success = ary->get_key_val_full(id, key, val); + if(success) { + hash = (key & ary->key_mask) << ary->lsize; + uint_t reprobep = (key >> ary->key_off) - 1; + hash |= (id - (reprobep > 0 ? ary->reprobes[reprobep] : 0)) & ary->size_mask; + if(get_pos() < start_id || get_pos() >= end_id) + continue; + key = ary->hash_inverse_matrix.times(hash); + return true; + } + } + return false; + } + }; + friend class overlap_iterator; + + /* Return whether the entry is empty and if not, it returns the + * key and if it has the large bit set. + */ + void get_entry_stats(size_t id, bool &empty, word &key, bool &large) const { + word *w, *kvw = NULL; + const offset_t *o, *lo = NULL; + + w = offsets.get_word_offset(id, &o, &lo, data); + kvw = w + o->key.woff; + key = *kvw; + large = key & o->key.lb_mask; + if(large) + o = lo; + if(o->key.mask2) { + key = (key & o->key.mask1 & ~o->key.sb_mask1) >> o->key.boff; + key |= ((*(kvw+1)) & o->key.mask2 & ~o->key.sb_mask2) << o->key.shift; + } else { + key = (key & o->key.mask1) >> o->key.boff; + } + empty = key == 0; + } + + /* + * Return the key and value at position id. If the slot at id is + * empty, returns false. If the slot at position id has the large + * bit set, the key is resolved by looking backward in the + * table. The value returned on the other hand is the value at + * position id. No summation of the other entries for the key is + * done. + */ + bool get_key_val(size_t id, word &key, word &val) const { + word *w, *kvw, *fw = NULL; + const offset_t *o, *lo, *fo = NULL; + bool large; + uint_t overflows; + + overflows = 0; + while(true) { + w = offsets.get_word_offset(id, &o, &lo, data); + kvw = w + o->key.woff; + key = *kvw; + large = key & o->key.lb_mask; + if(large) + o = lo; + if(o->key.mask2) { + key = (key & o->key.mask1 & ~o->key.sb_mask1) >> o->key.boff; + key |= ((*(kvw+1)) & o->key.mask2 & ~o->key.sb_mask2) << o->key.shift; + } else { + key = (key & o->key.mask1) >> o->key.boff; + } + + // Save offset and word for value retrieval + if(!fo) { + fo = o; + fw = w; + } + + if(large) { + if(key) + id -= reprobes[key]; + id = (id - reprobes[0]) & size_mask; + overflows++; + } else { + break; + } + } + if(!key) + return false; + + kvw = fw + fo->val.woff; + val = ((*kvw) & fo->val.mask1) >> fo->val.boff; + if(fo->val.mask2) { + val |= ((*(kvw+1)) & fo->val.mask2) << fo->val.shift; + } + if(overflows > 0) { + val <<= offsets.get_val_len(); + if(--overflows > 0) + val <<= offsets.get_lval_len() * overflows; + } + return true; + } + + /* + * Return the key and value at position id. If the slot at id is + * empty or has the large bit set, returns false. Otherwise, + * returns the key and the value is the sum of all the entries + * in the hash table for that key. I.e., the table is search + * forward for entries with large bit set pointing back to the + * key at id, and all those values are summed up. + */ + bool get_key_val_full(size_t id, word &key, word &val, + bool carry_bit = false) const { + const offset_t *o, *lo; + word *w, *kvw, nkey, nval; + uint_t reprobe = 0, overflows = 0; + size_t cid; + + w = offsets.get_word_offset(id, &o, &lo, data); + kvw = w + o->key.woff; + key = *kvw; + if(key & o->key.lb_mask) + return false; + if(o->key.mask2) { + if((key & o->key.sb_mask1) == 0) + return false; + key = (key & o->key.mask1 & ~o->key.sb_mask1) >> o->key.boff; + key |= ((*(kvw+1)) & o->key.mask2 & ~o->key.sb_mask2) << o->key.shift; + } else { + key = (key & o->key.mask1) >> o->key.boff; + if(key == 0) + return false; + } + + kvw = w + o->val.woff; + val = ((*kvw) & o->val.mask1) >> o->val.boff; + if(o->val.mask2) + val |= ((*(kvw+1)) & o->val.mask2) << o->val.shift; + + if(carry_bit) { + bool do_reprobe = val & 0x1; + val >>= 1; + if(!do_reprobe) + return true; + } + + // Resolve value + reprobe = 0; + cid = id = (id + reprobes[0]) & size_mask; + while(reprobe <= reprobe_limit.val()) { + if(reprobe) + cid = (id + reprobes[reprobe]) & size_mask; + + w = offsets.get_word_offset(cid, &o, &lo, data); + kvw = w + o->key.woff; + nkey = *kvw; + if(nkey & o->key.lb_mask) { + if(lo->key.mask2) { + nkey = (nkey & lo->key.mask1 & ~lo->key.sb_mask1) >> lo->key.boff; + nkey |= ((*(kvw+1)) & lo->key.mask2 & ~lo->key.sb_mask2) << lo->key.shift; + } else { + nkey = (nkey & lo->key.mask1) >> lo->key.boff; + } + if(nkey == reprobe) { + kvw = w + lo->val.woff; + nval = ((*kvw) & lo->val.mask1) >> lo->val.boff; + if(lo->val.mask2) + nval |= ((*(kvw+1)) & lo->val.mask2) << lo->val.shift; + bool do_reprobe = true; + if(carry_bit) { + do_reprobe = nval & 0x1; + nval >>= 1; + } + + nval <<= offsets.get_val_len(); + nval <<= offsets.get_lval_len() * overflows; + val += nval; + + if(!do_reprobe) + return true; + + overflows++; + reprobe = 0; + cid = id = (cid + reprobes[0]) & size_mask; + continue; + } + } else { + if(o->key.mask2) { + if((nkey & o->key.sb_mask1) == 0) + return true; + } else { + if((nkey & o->key.mask1) == 0) + return true; + } + } + + reprobe++; + } + + return true; + } + + inline bool get_val(const word key, word &val, bool full = false, + bool carry_bit = false) const { + uint64_t hash = hash_matrix.times(key); + size_t key_id; + return _get_val(hash & size_mask, key_id, (hash >> lsize) & key_mask, val, + full, carry_bit); + } + + inline bool get_val(const word key, size_t &key_id, word &val, + bool full = false, bool carry_bit = false) const { + uint64_t hash = hash_matrix.times(key); + return _get_val(hash & size_mask, key_id, (hash >> lsize) & key_mask, val, + full, carry_bit); + } + + // /* InputIterator points to keys (words). OutputIterator points + // to struct containing at least the fields { bool found; size_t + // key_id; word val; }. + // */ + // template + // void get_multi_val(InputIterator key, const InputIterator& key_end, + // OutputIterator val, bool full, bool carry_bit) const { + // uint64_t phash, chash; + // const offset_t *po, *plo, *co, *clo; + // const word *pw, *cw; + + // if(key == key_end) + // return; + + // // Call __get_val with a delay. Let prefetch work while we + // // compute the hash/get the previous key. + // phash = hash_matrix.times(*key); + // pw = offsets.get_word_offset(phash & size_mask, &po, &plo, data); + // //__builtin_prefetch(pw + po->key.woff, 0, 3); + + // for(++key; key != key_end; ++key, ++val) { + // chash = hash_matrix.times(*key); + // cw = offsets.get_word_offset(chash & size_mask, &co, &clo, data); + // //__builtin_prefetch(cw + co->key.woff, 0, 3); + + // val->found = __get_val(phash & size_mask, val->key_id, + // (phash >> lsize) & key_mask, val->val, + // full, carry_bit, pw, po, plo); + + + // pw = cw; + // po = co; + // plo = clo; + // phash = chash; + // } + // // Last one + // val->found = __get_val(phash & size_mask, val->key_id, + // (phash >> lsize) & key_mask, val->val, + // full, carry_bit, pw, po, plo); + // } + + struct prefetch_info { + const word* w; + const offset_t *o, *lo; + }; + typedef simple_circular_buffer::pre_alloc prefetch_buffer; + + void warm_up_cache(prefetch_buffer& buffer, size_t id, bool load_lo) const { + buffer.clear(); + for(int i = 0; i < buffer.capacity(); ++i) { + buffer.push_back(); + prefetch_info& info = buffer.back(); + size_t cid = (id + (i > 0 ? reprobes[i] : 0)) & size_mask; + info.w = offsets.get_word_offset(cid, &info.o, &info.lo, data); + __builtin_prefetch(info.w + info.o->key.woff, 0, 1); + __builtin_prefetch(info.o, 0, 3); + if(load_lo) + __builtin_prefetch(info.lo, 0, 3); + } + } + + void prefetch_next(prefetch_buffer& buffer, size_t id, uint_t reprobe, bool load_lo) const { + buffer.pop_front(); + if(reprobe + buffer.capacity() <= reprobe_limit.val()) { + buffer.push_back(); + prefetch_info& info = buffer.back(); + size_t fid = (id + reprobes[reprobe + buffer.capacity() - 1]) & size_mask; + info.w = offsets.get_word_offset(fid, &info.o, &info.lo, data); + __builtin_prefetch(info.w + info.o->key.woff, 0, 1); + __builtin_prefetch(info.o, 0, 3); + if(load_lo) + __builtin_prefetch(info.lo, 0, 3); + } + + } + + bool _get_val(const size_t id, size_t &key_id, const word key, word &val, + bool full = false, bool carry_bit = false) const { + // Buffer for pre-cached information + prefetch_info info_ary[prefetch_buffer::capacity()]; + prefetch_buffer buffer(info_ary); + warm_up_cache(buffer, id, false); + + return __get_val(id, key_id, key, val, full, carry_bit, buffer); + } + + bool __get_val(const size_t id, size_t &key_id, const word key, word &val, + const bool full, bool carry_bit, + prefetch_buffer& buffer) const { + const word *kvw; + word nkey, nval; + size_t cid = id; + uint_t reprobe = 0; + word akey = key | ((word)1 << key_off); + + // Find key + const offset_t *o, *lo; + const word* w; + while(true) { + prefetch_info& info = buffer.front(); + w = info.w; + o = info.o; + kvw = w + o->key.woff; + nkey = *kvw; + + if(!(nkey & o->key.lb_mask)) { + if(o->key.mask2) { + nkey = (nkey & o->key.mask1 & ~o->key.sb_mask1) >> o->key.boff; + nkey |= ((*(kvw+1)) & o->key.mask2 & ~o->key.sb_mask2) << o->key.shift; + } else { + nkey = (nkey & o->key.mask1) >> o->key.boff; + } + if(nkey == akey) + break; + } + if(++reprobe > reprobe_limit.val()) + return false; + // Do reprobe + cid = (id + reprobes[reprobe]) & size_mask; + akey = key | ((reprobe + 1) << key_off); + + prefetch_next(buffer, id, reprobe, false); + } + + // Get value + kvw = w + o->val.woff; + val = ((*kvw) & o->val.mask1) >> o->val.boff; + if(o->val.mask2) { + val |= ((*(kvw+1)) & o->val.mask2) << o->val.shift; + } + bool do_reprobe = true; + if(carry_bit) { + do_reprobe = val & 0x1; + val >>= 1; + } + key_id = cid; + + // Eventually get large values... TODO: this seems buggy. It + // only looks for large values once, not as many times as + // needed. + if(full && do_reprobe) { + const size_t bid = (cid + reprobes[0]) & size_mask; + cid = bid; + + warm_up_cache(buffer, bid, true); + + reprobe = 0; + do { + prefetch_info& info = buffer.front(); + const word* w = info.w; + o = info.o; + lo = info.lo; + kvw = w + o->key.woff; + nkey = *kvw; + if(nkey & o->key.lb_mask) { + if(lo->key.mask2) { + nkey = (nkey & lo->key.mask1 & ~lo->key.sb_mask1) >> lo->key.boff; + nkey |= ((*(kvw+1)) & lo->key.mask2 & ~lo->key.sb_mask2) << lo->key.shift; + } else { + nkey = (nkey & lo->key.mask1) >> lo->key.boff; + } + if(nkey == reprobe) { + kvw = w + lo->val.woff; + nval = ((*kvw) & lo->val.mask1) >> lo->val.boff; + if(lo->val.mask2) + nval |= ((*(kvw+1)) & lo->val.mask2) << lo->val.shift; + if(carry_bit) { + nval >>= 1; + val |= nval << (offsets.get_val_len() - 1); + } else + val |= nval << offsets.get_val_len(); + break; // Should break only if carry_bit of nval is + // not set. Otherwise, we should reset the + // reprobe to 0 and try again. + } + } + + cid = (bid + reprobes[++reprobe]) & size_mask; + + prefetch_next(buffer, bid, reprobe, true); + } while(reprobe <= reprobe_limit.val()); + } + + return true; + } + + /** + * Use hash values as counters + */ + inline bool add(word key, word val, word *oval = 0) { + uint64_t hash = hash_matrix.times(key); + return add_rec(hash & size_mask, (hash >> lsize) & key_mask, + val, false, oval); + } + + + + /** + * Use hash as a set. + */ + inline bool add(word _key, bool *is_new) __attribute__((deprecated)) { + size_t id; + return set(_key, is_new, &id); + } + inline bool set(word _key, bool *is_new) { + size_t id; + return set(_key, is_new, &id); + } + bool add(word _key, bool *is_new, size_t *id) __attribute__((deprecated)) { + return set(_key, is_new, id); + } + bool set(word _key, bool *is_new, size_t *id) { + const offset_t *ao; + uint64_t hash = hash_matrix.times(_key); + word *w; + *id = hash & size_mask; + return claim_key((hash >> lsize) & key_mask, is_new, id, false, + &ao, &w); + } + + /** + * Use hash as a map. This sets a value with the key. It is only + * partially thread safe. I.e., multiple different key can be + * added concurrently. On the other hand, the same key can not + * be added at the same time by different thread: the value set + * may not be correct. + */ + inline bool map(word _key, word val) { + bool is_new; + return map(_key, val, &is_new); + } + + bool map(word _key, word val, bool* is_new) { + uint64_t hash = hash_matrix.times(_key); + return map_rec(hash & size_mask, (hash >> lsize) & key_mask, val, false, + is_new); + } + + void write_ary_header(std::ostream *out) const { + hash_matrix.dump(out); + hash_inverse_matrix.dump(out); + } + + void write_raw(std::ostream *out) const { + if(out->tellp() & 0x7) { // Make sure aligned + std::string padding(0x8 - (out->tellp() & 0x7), '\0'); + out->write(padding.c_str(), padding.size()); + } + out->write((char *)mem_block.get_ptr(), mem_block.get_size()); + } + + private: + /* id is input/output. Equal to hash & size_maks on input. Equal + * to actual id where key was set on output. key is already hash + * shifted and masked to get higher bits. (>> lsize & key_mask) + * + * is_new is set on output to true if key did not exists in hash + * before. *ao points to the actual offsets object. + */ + bool claim_key(const word &key, bool *is_new, size_t *id, bool large, + const offset_t **_ao, word **_w) { + uint_t reprobe = 0; + const offset_t *o, *lo, *ao; + word *w, *kw, nkey; + bool key_claimed = false; + size_t cid = *id; + word akey = large ? 0 :(key | ((word)1 << key_off)); + + do { + *_w = w = offsets.get_word_offset(cid, &o, &lo, data); + *_ao = ao = large ? lo : o; + + kw = w + ao->key.woff; + + if(ao->key.mask2) { // key split on two words + nkey = akey << ao->key.boff; + nkey |= ao->key.sb_mask1; + if(large) + nkey |= ao->key.lb_mask; + nkey &= ao->key.mask1; + + // Use o->key.mask1 and not ao->key.mask1 as the first one is + // guaranteed to be bigger. The key needs to be free on its + // longer mask to claim it! + key_claimed = set_key(kw, nkey, o->key.mask1, ao->key.mask1); + if(key_claimed) { + nkey = ((akey >> ao->key.shift) | ao->key.sb_mask2) & ao->key.mask2; + key_claimed = key_claimed && set_key(kw + 1, nkey, o->key.mask2, ao->key.mask2, is_new); + } + } else { // key on one word + nkey = akey << ao->key.boff; + if(large) + nkey |= ao->key.lb_mask; + nkey &= ao->key.mask1; + key_claimed = set_key(kw, nkey, o->key.mask1, ao->key.mask1, is_new); + } + if(!key_claimed) { // reprobe + if(++reprobe > reprobe_limit.val()) + return false; + cid = (*id + reprobes[reprobe]) & size_mask; + + if(large) + akey = reprobe; + else + akey = key | ((reprobe + 1) << key_off); + } + } while(!key_claimed); + + *id = cid; + return true; + } + + bool add_rec(size_t id, word key, word val, bool large, word *oval) { + const offset_t *ao; + word *w; + + bool is_new = false; + if(!claim_key(key, &is_new, &id, large, &ao, &w)) + return false; + if(oval) + *oval = !is_new; + + // Increment value + word *vw = w + ao->val.woff; + word cary = add_val(vw, val, ao->val.boff, ao->val.mask1); + cary >>= ao->val.shift; + if(cary && ao->val.mask2) { // value split on two words + cary = add_val(vw + 1, cary, 0, ao->val.mask2); + cary >>= ao->val.cshift; + } + if(cary) { + id = (id + reprobes[0]) & size_mask; + if(add_rec(id, key, cary, true, 0)) + return true; + + // Adding failed, table is full. Need to back-track and + // substract val. + cary = add_val(vw, ((word)1 << offsets.get_val_len()) - val, + ao->val.boff, ao->val.mask1); + cary >>= ao->val.shift; + if(cary && ao->val.mask2) { + // Can I ignore the cary here? Table is known to be full, so + // not much of a choice. But does it leave the table in a + // consistent state? + add_val(vw + 1, cary, 0, ao->val.mask2); + } + return false; + } + return true; + } + + // Store val in the hash at position id. Reprobe and recurse if + // val does not fit in counter field. A bit is added at the + // beginning of the counting field indicating whether there is + // another entry for the same key further in the hash. + bool map_rec(size_t id, word key, word val, bool large, bool* is_new) { + const offset_t* ao; + word* w; + bool is_new_entry = false; + if(!claim_key(key, &is_new_entry, &id, large, &ao, &w)) + return false; + if(is_new) + *is_new = is_new_entry; + + // Determine if there will be a carry + val <<= 1; + val |= (val > offsets.get_max_val(large)); + + // Set value + word *vw = w + ao->val.woff; + word oval = 0; + word cary = set_val(vw, val, ao->val.boff, ao->val.mask1, oval); + cary >>= ao->val.shift; + bool cary_bit = oval & 0x1; + if(ao->val.mask2) { // value split on two words. Write even if + // cary is 0 as there maybe some value in + // there already + cary = set_val(vw + 1, cary, 0, ao->val.mask2, oval); + cary >>= ao->val.cshift; + } + // Done if there is no carry and previous value did not have + // the carry_bit set + if(!cary && !cary_bit) + return true; + id = (id + reprobes[0]) & size_mask; + return map_rec(id, key, cary, true, 0); + } + + inline bool set_key(word *w, word nkey, word free_mask, + word equal_mask) { + word ow = *w, nw, okey; + + okey = ow & free_mask; + while(okey == 0) { // large bit not set && key is free + nw = atomic.cas(w, ow, ow | nkey); + if(nw == ow) + return true; + ow = nw; + okey = ow & free_mask; + } + return (ow & equal_mask) == nkey; + } + + inline bool set_key(word *w, word nkey, word free_mask, + word equal_mask, bool *is_new) { + word ow = *w, nw, okey; + + okey = ow & free_mask; + while(okey == 0) { // large bit not set && key is free + nw = atomic.cas(w, ow, ow | nkey); + if(nw == ow) { + *is_new = true; + return true; + } + ow = nw; + okey = ow & free_mask; + } + *is_new = false; + return (ow & equal_mask) == nkey; + } + + + inline word add_val(word *w, word val, uint_t shift, word mask) { + word now = *w, ow, nw, nval; + + do { + ow = now; + nval = ((ow & mask) >> shift) + val; + nw = (ow & ~mask) | ((nval << shift) & mask); + now = atomic.cas(w, ow, nw); + } while(now != ow); + + return nval & (~(mask >> shift)); + } + + inline word set_val(word *w, word val, uint_t shift, word mask, + word& oval) { + word now = *w, ow, nw; + word sval = (val << shift) & mask; + + do { + ow = now; + nw = (ow & ~mask) | sval; + now = atomic.cas(w, ow, nw); + } while(now != ow); + + oval = (ow & mask) >> shift; + return val & (~(mask >> shift)); + } + }; + + /*****/ + } +} + +#endif // __REVERSIBLE_HASH__ diff --git a/src/inc/jellyfish/locks_pthread.hpp b/src/inc/jellyfish/locks_pthread.hpp new file mode 100644 index 00000000..63d24224 --- /dev/null +++ b/src/inc/jellyfish/locks_pthread.hpp @@ -0,0 +1,172 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_LOCKS_PTHREAD_HPP__ +#define __JELLYFISH_LOCKS_PTHREAD_HPP__ + +#include + +namespace locks { + namespace pthread { + class cond + { + pthread_mutex_t _mutex; + pthread_cond_t _cond; + + public: + cond() { + pthread_mutex_init(&_mutex, NULL); + pthread_cond_init(&_cond, NULL); + } + + ~cond() { + pthread_cond_destroy(&_cond); + pthread_mutex_destroy(&_mutex); + } + + inline void lock() { pthread_mutex_lock(&_mutex); } + inline void unlock() { pthread_mutex_unlock(&_mutex); } + inline void wait() { pthread_cond_wait(&_cond, &_mutex); } + inline void signal() { pthread_cond_signal(&_cond); } + inline void broadcast() { pthread_cond_broadcast(&_cond); } + }; + + class mutex + { + pthread_mutex_t _mutex; + + public: + mutex() { + pthread_mutex_init(&_mutex, NULL); + } + + ~mutex() { + pthread_mutex_destroy(&_mutex); + } + + inline void lock() { pthread_mutex_lock(&_mutex); } + inline void unlock() { pthread_mutex_unlock(&_mutex); } + inline bool try_lock() { return !pthread_mutex_trylock(&_mutex); } + }; + + class Semaphore + { + int _value, _wakeups; + cond _cv; + public: + explicit Semaphore(int value) : + _value(value), + _wakeups(0) + { + // nothing to do + } + + ~Semaphore() {} + + inline void wait() { + _cv.lock(); + _value--; + if (_value < 0) { + do { + _cv.wait(); + } while(_wakeups < 1); + _wakeups--; + } + _cv.unlock(); + } + + inline void signal() { + _cv.lock(); + _value++; + if(_value <= 0) { + _wakeups++; + _cv.signal(); + } + _cv.unlock(); + } + }; + +#if defined(_POSIX_BARRIERS) && (_POSIX_BARRIERS - 20012L) >= 0 + class barrier + { + pthread_barrier_t _barrier; + + public: + explicit barrier(unsigned count) { + + pthread_barrier_init(&_barrier, NULL, count); + } + + ~barrier() { + pthread_barrier_destroy(&_barrier); + } + + inline int wait() { + return pthread_barrier_wait(&_barrier); + } + }; + +#else +# ifndef PTHREAD_BARRIER_SERIAL_THREAD +# define PTHREAD_BARRIER_SERIAL_THREAD 1 +# endif + + class barrier + { + int count; // required # of threads + int current; // current # of threads that have passed thru + mutex barlock; // protect current + Semaphore barrier1; // implement the barrier + Semaphore barrier2; + + public: + explicit barrier(unsigned cnt) + : count(cnt), current(0), barrier1(0), barrier2(0) { + } + + ~barrier() {} + + inline int wait() { + int ret = 0; + barlock.lock(); + current += 1; + if(current == count) { + ret = PTHREAD_BARRIER_SERIAL_THREAD; + for(int i=0; i. +*/ + +#ifndef __JELLYFISH_MAPPED_FILE_HPP__ +#define __JELLYFISH_MAPPED_FILE_HPP__ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +class mapped_file { +protected: + std::string _path; + bool _unmap; + char *_base, *_end; + size_t _length; + + void map(const char *filename) { + int fd = open(filename, O_RDONLY); + struct stat stat; + + if(fd < 0) + eraise(ErrorMMap) << "Can't open file '" << filename << "'" << err::no; + + if(fstat(fd, &stat) < 0) + eraise(ErrorMMap) << "Can't stat file '" << filename << "'" << err::no; + + _length = stat.st_size; + _base = (char *)mmap(NULL, _length, PROT_READ, MAP_PRIVATE, fd, 0); + if(_base == MAP_FAILED) + eraise(ErrorMMap) << "Can't mmap file '" << filename << "'" << err::no; + close(fd); + _end = _base + _length; + } + +public: + define_error_class(ErrorMMap); + mapped_file(char *__base, size_t __length) : + _unmap(false), _base(__base), _end(__base + __length), _length(__length) {} + + explicit mapped_file(const char *filename) : _path(filename), _unmap(false) { + map(filename); + } + mapped_file(const mapped_file &mf) : + _path(mf.path()), _unmap(false), _base(mf._base), _end(mf._end), + _length(mf._length) {} + + ~mapped_file() { + if(_unmap) + unmap(); + } + + void unmap() { + if(!_base) + return; + munmap(_base, _length); + _base = 0; + _length = 0; + } + + char *base() const { return _base; } + char *end() const { return _end; } + size_t length() const { return _length; } + std::string path() const { return _path; } + + bool will_unmap(bool value = true) { + bool ovalue = _unmap; + _unmap = value; + return ovalue; + } + // No error checking here. Should I throw something? + const mapped_file & will_need() const { + madvise(_base, _length, MADV_WILLNEED); + return *this; + } + const mapped_file & sequential() const { + madvise(_base, _length, MADV_SEQUENTIAL); + return *this; + } + const mapped_file & random() const { + madvise(_base, _length, MADV_RANDOM); + return *this; + } + const mapped_file & lock() const { + if(mlock(_base, _length) < 0) + eraise(ErrorMMap) << "Can't lock map in memory" << err::no; + return *this; + } + + // Do not optimize. Side effect is that every page is accessed and should now be in cache. + // The flagg __attribute__((optimize(0))) does not compile, so return a useless char argument + char load() const; +}; + +class mapped_files_t : public std::vector { +public: + mapped_files_t(int nb_files, char *argv[]) { + for(int j = 0; j < nb_files; j++) + push_back(mapped_file(argv[j])); + } + + mapped_files_t(int nb_files, char *argv[], bool sequential) { + for(int j = 0; j < nb_files; j++) { + push_back(mapped_file(argv[j])); + if(sequential) + end()->sequential(); + } + } +}; + +// File mapped on demand. +class lazy_mapped_file_t : public mapped_file { + std::string _path; + volatile bool done; + volatile long used_counter; + +public: + explicit lazy_mapped_file_t(const char *path) : + mapped_file((char *)0, (size_t)0), + _path(path), done(false), used_counter(0) {} + + void map() { + used_counter = 1; + done = false; + mapped_file::map(_path.c_str()); + } + void unmap() { + done = true; + dec(); + } + + void inc() { + atomic::gcc::fetch_add(&used_counter, (long)1); + } + void dec() { + long val = atomic::gcc::add_fetch(&used_counter, (long)-1); + if(done && val == 0) + mapped_file::unmap(); + } +}; + +class lazy_mapped_files_t : public std::vector { +public: + lazy_mapped_files_t(int nb_files, char *argv[]) { + for(int j = 0; j < nb_files; j++) + push_back(lazy_mapped_file_t(argv[j])); + } + + lazy_mapped_files_t(int nb_files, char *argv[], bool sequential) { + for(int j = 0; j < nb_files; j++) { + push_back(lazy_mapped_file_t(argv[j])); + if(sequential) + end()->sequential(); + } + } +}; + +#endif diff --git a/src/inc/jellyfish/mer_counting.hpp b/src/inc/jellyfish/mer_counting.hpp new file mode 100644 index 00000000..42bc2c2f --- /dev/null +++ b/src/inc/jellyfish/mer_counting.hpp @@ -0,0 +1,68 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_MER_COUNTING__ +#define __JELLYFISH_MER_COUNTING__ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Invertible hash types +#include +#include +typedef jellyfish::invertible_hash::array inv_hash_storage_t; +typedef jellyfish::sorted_dumper< inv_hash_storage_t,atomic::gcc> inv_hash_dumper_t; +typedef jellyfish::raw_hash::dumper raw_inv_hash_dumper_t; +typedef jellyfish::raw_hash::query raw_inv_hash_query_t; +typedef jellyfish::hash< uint64_t,uint64_t,inv_hash_storage_t,atomic::gcc > inv_hash_t; + +// Direct indexing types +#include +#include +#include +typedef jellyfish::direct_indexing::array,atomic::gcc,allocators::mmap> direct_index_storage_t; +typedef jellyfish::direct_sorted_dumper< direct_index_storage_t, atomic::gcc> direct_index_dumper_t; +typedef jellyfish::hash< uint64_t,jellyfish::capped_integer,direct_index_storage_t,atomic::gcc> direct_index_t; + +// Quake types +#include +#include +#include +#include +typedef jellyfish::aligned_values::array fastq_storage_t; +typedef jellyfish::hash fastq_hash_t; +typedef jellyfish::fastq_hash::raw_dumper raw_fastq_dumper_t; + +// Compacted hash types +typedef jellyfish::compacted_hash::reader hash_reader_t; +typedef jellyfish::compacted_hash::query hash_query_t; +typedef jellyfish::compacted_hash::writer hash_writer_t; + +#endif /* __MER_COUNTING__ */ diff --git a/src/inc/jellyfish/misc.hpp b/src/inc/jellyfish/misc.hpp new file mode 100644 index 00000000..889adf51 --- /dev/null +++ b/src/inc/jellyfish/misc.hpp @@ -0,0 +1,144 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_MISC_HPP__ +#define __JELLYFISH_MISC_HPP__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define bsizeof(v) (8 * sizeof(v)) +typedef uint_fast64_t uint_t; +//#define UINT_C(x) +#define PRIUINTu PRIuFAST64 +#define PRIUINTx PRIxFAST64 + +inline int leading_zeroes(int x) { return __builtin_clz(x); } // CLK +inline int leading_zeroes(unsigned int x) { return __builtin_clz(x); } +inline int leading_zeroes(unsigned long x) { return __builtin_clzl(x); } +inline int leading_zeroes(unsigned long long x) { return __builtin_clzll(x); } + + +template +unsigned int floorLog2(T n) { + return sizeof(T) * 8 - 1 - leading_zeroes(n); +} + +template +uint_t ceilLog2(T n) { + uint_t r = floorLog2(n); + return n > (((T)1) << r) ? r + 1 : r; +} + +template +T div_ceil(T a, T b) { + T q = a / b; + return a % b == 0 ? q : q + 1; +} + +template +uint_t bitsize(T n) { + return floorLog2(n) + 1; +} + +inline uint32_t reverse_bits(uint32_t v) { + // swap odd and even bits + v = ((v >> 1) & 0x55555555) | ((v & 0x55555555) << 1); + // swap consecutive pairs + v = ((v >> 2) & 0x33333333) | ((v & 0x33333333) << 2); + // swap nibbles ... + v = ((v >> 4) & 0x0F0F0F0F) | ((v & 0x0F0F0F0F) << 4); + // swap bytes + v = ((v >> 8) & 0x00FF00FF) | ((v & 0x00FF00FF) << 8); + // swap 2-byte long pairs + v = ( v >> 16 ) | ( v << 16); + return v; +} + +inline uint64_t reverse_bits(uint64_t v) { + v = ((v >> 1) & 0x5555555555555555UL) | ((v & 0x5555555555555555UL) << 1); + v = ((v >> 2) & 0x3333333333333333UL) | ((v & 0x3333333333333333UL) << 2); + v = ((v >> 4) & 0x0F0F0F0F0F0F0F0FUL) | ((v & 0x0F0F0F0F0F0F0F0FUL) << 4); + v = ((v >> 8) & 0x00FF00FF00FF00FFUL) | ((v & 0x00FF00FF00FF00FFUL) << 8); + v = ((v >> 16) & 0x0000FFFF0000FFFFUL) | ((v & 0x0000FFFF0000FFFFUL) << 16); + v = ( v >> 32 ) | ( v << 32); + return v; +} + +uint64_t bogus_sum(void *data, size_t len); + +template +size_t bits_to_bytes(T bits) { + return (size_t)((bits / 8) + (bits % 8 != 0)); +} + +template +union Tptr { + void *v; + T *t; +}; +template +T *calloc_align(size_t nmemb, size_t alignment) { + Tptr ptr; + if(posix_memalign(&ptr.v, alignment, sizeof(T) * nmemb) < 0) + throw std::bad_alloc(); + return ptr.t; +} + +/* Be pedantic about memory access. Any misaligned access will + * generate a BUS error. + */ +void disabled_misaligned_mem_access(); + +/* Raison d'etre of this version of mem_copy: It seems we have slow + * down due to misaligned cache accesses. glibc memcpy does unaligned + * memory accesses and crashes when they are disabled. This version + * does only aligned memory access (see above). + */ +template +void mem_copy(char *dest, const char *src, const T &len) { + // dumb copying char by char + for(T i = (T)0; i < len; ++i) + *dest++ = *src++; +} + +/* Slice a large number (total) in almost equal parts. return [start, + end) corresponding to the ith part (0 <= i < number_of_slices) + */ +template +std::pair slice(T i, T number_of_slices, T total) { + if(number_of_slices > 1) + --number_of_slices; + T slice_size = total / number_of_slices; + T slice_remain = total % number_of_slices; + T start = std::min(total, i * slice_size + i * slice_remain / number_of_slices); + T end = std::min(total, (i + 1) * slice_size + (i + 1) * slice_remain / number_of_slices); + return std::make_pair(start, end); +} + +std::streamoff get_file_size(std::istream& is); +#endif // __MISC_HPP__ diff --git a/src/inc/jellyfish/offsets_key_value.hpp b/src/inc/jellyfish/offsets_key_value.hpp new file mode 100644 index 00000000..fdc16e3a --- /dev/null +++ b/src/inc/jellyfish/offsets_key_value.hpp @@ -0,0 +1,239 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_OFFSETS_KEY_VALUE_HPP__ +#define __JELLYFISH_OFFSETS_KEY_VALUE_HPP__ + +#include +#include +#include + +namespace jellyfish { + /* A word is whatever aligned type used for atomic operations + * (CAS). Typically, a uint64_t. We store pairs of (key, value), in a + * bit packed fashion. The key and value can have abritrary size as + * long as they each fit in one word. A block is the largest number of + * (key, value) pair such that the first key, and only the first, + * starts at an aligned word. + * + * The key 0x0 is not valid. A key which fits completely within one + * word is not protected by a "set" bit. A key which straddle the + * boundary between two aligned words has a set bit in each parts. + * + * A value field can have any value and is initialized to 0x0. It has + * no "set" bit ever. + * + * A key is prefixed with a "large" bit. If this bit is 0, the key + * field is length key_len (not counting the possible set bits) and + * the value field has length val_len. If the large bit has value 1, + * the key field is just long enough to encode the number of + * reprobing hops to go backward to find the actual key. The + * remainder bits is used for the value field. In this scheme, we + * assume the length needed to encode the number of reprobes is much + * less than the length needed to encode the key. + */ + + /* Offsets holds all the possible offset for a given combination of + * key length, value length and reprobe limit. + */ + template + class Offsets { + public: + // woff: offset in words from beginning of block + // boff: offset in bits within that word. Past large bit. + // shift: shift in second word, if any + // mask1: includes the large bit and the set bit if any. + // mask2: mask in second word. Idem as mask1. 0 if fits in one word. + // sb_mask[12]: mask for set bit in word 1 and 2, if any. set bit is the + // last usable bit of the field. + // lb_mask: mask for the large bit. It is the first bit of the key field. + typedef struct { + struct { + uint_t woff, boff, shift, cshift; + word mask1, mask2, sb_mask1, sb_mask2, lb_mask; + } key; + struct { + uint_t woff, boff, shift, cshift; + word mask1, mask2; + } val; + } offset_t; + typedef struct { + offset_t normal; + offset_t large; + } offset_pair_t; + struct block_info { + uint_t len; + uint_t word_len; + }; + // Offsets() {} + + Offsets(uint_t _key_len, uint_t _val_len, uint_t _reprobe_limit) : + key_len(_key_len), + val_len(_val_len), + reprobe_limit(_reprobe_limit), + reprobe_len(bitsize(reprobe_limit)), + lval_len(key_len + val_len - reprobe_len), + block(compute_offsets()), + bld(block.len) + { } + + ~Offsets() {} + + uint_t get_block_len() const { return block.len; } + uint_t get_block_word_len() const { return block.word_len; } + uint_t get_reprobe_len() const { return reprobe_len; } + uint_t get_key_len() const { return key_len; } + uint_t get_val_len() const { return val_len; } + uint_t get_lval_len() const { return lval_len; } + word get_max_val(bool large) const { + return (((uint64_t)1) << (large ? lval_len : val_len)) - 1; + } + + // Discretize and round down number of entries according to length + // of a block. Return in blocks the number of blocks. + size_t floor_block(size_t entries, size_t &blocks) const { + blocks = entries / bld; + return block.len * blocks; + } + + word *get_word_offset(size_t id, const offset_t **o, const offset_t **lo, + word * const base) const { + uint64_t q, r; + bld.division(id, q, r); + word *w = base + (block.word_len * q); + *o = &offsets[r].normal; + *lo = &offsets[r].large; + return w; + } + + private: + const uint_t key_len, val_len; + const uint_t reprobe_limit, reprobe_len, lval_len; + const block_info block; + const divisor64 bld; // Fast divisor by block.len + offset_pair_t offsets[bsizeof(word)]; + + block_info compute_offsets(); + bool update_current_offsets(uint_t &cword, uint_t &cboff, uint_t add); + word mask(uint_t length, uint_t shift); + }; + + template + bool Offsets::update_current_offsets(uint_t &cword, uint_t &cboff, uint_t add) + { + cboff += add; + if(cboff >= bsizeof(word)) { + cword++; + cboff %= bsizeof(word); + return cboff > 0; + } + return false; + } + + template + word Offsets::mask(uint_t length, uint_t shift) + { + return (((word)1u << length) - 1) << shift; + } + + template + typename Offsets::block_info Offsets::compute_offsets() + { + offset_pair_t *offset = offsets; + uint_t cword = 0; // current word in block + uint_t cboff = 0; // current offset in word + uint_t lcword; // idem for large fields + uint_t lcboff; + uint_t ocboff; + + memset(offsets, '\0', sizeof(offsets)); + do { + offset->normal.key.woff = offset->large.key.woff = lcword = cword; + ocboff = lcboff = cboff; + offset->normal.key.boff = cboff + 1; + offset->normal.key.lb_mask = mask(1, cboff); + if(update_current_offsets(cword, cboff, key_len + 1)) { + // key extends over two words -> add extra set bits + update_current_offsets(cword, cboff, 2); + offset->normal.key.mask1 = mask(bsizeof(word) - ocboff, ocboff); + offset->normal.key.mask2 = mask(cboff, 0); + offset->normal.key.shift = key_len + 1 - cboff; + offset->normal.key.cshift = cboff - 1; + offset->normal.key.sb_mask1 = mask(1, bsizeof(word) - 1); + offset->normal.key.sb_mask2 = mask(1, cboff - 1); + } else { + offset->normal.key.mask1 = mask(key_len + 1, ocboff); + offset->normal.key.mask2 = 0; + offset->normal.key.shift = 0; + offset->normal.key.cshift = 0; + offset->normal.key.sb_mask1 = 0; + offset->normal.key.sb_mask2 = 0; + } + offset->normal.val.woff = cword; + offset->normal.val.boff = cboff; + offset->normal.val.mask1 = mask(val_len, cboff); + if(update_current_offsets(cword, cboff, val_len)) { + offset->normal.val.mask2 = mask(cboff, 0); + offset->normal.val.shift = val_len - cboff; + offset->normal.val.cshift = cboff; + } else { + offset->normal.val.mask2 = 0; + offset->normal.val.shift = val_len; + offset->normal.val.cshift = 0; + } + + ocboff = lcboff; + offset->large.key.boff = lcboff + 1; + offset->large.key.lb_mask = mask(1, lcboff); + if(update_current_offsets(lcword, lcboff, reprobe_len + 1)) { + update_current_offsets(lcword, lcboff, 2); + offset->large.key.mask1 = mask(bsizeof(word) - ocboff, ocboff); + offset->large.key.mask2 = mask(lcboff, 0); + offset->large.key.shift = reprobe_len + 1 - lcboff; + offset->large.key.cshift = lcboff - 1; + offset->large.key.sb_mask1 = mask(1, bsizeof(word) - 1); + offset->large.key.sb_mask2 = mask(1, lcboff - 1); + } else { + offset->large.key.mask1 = mask(reprobe_len + 1, ocboff); + offset->large.key.mask2 = 0; + offset->large.key.boff = ocboff + 1; + offset->large.key.shift = 0; + offset->large.key.cshift = 0; + offset->large.key.sb_mask1 = 0; + offset->large.key.sb_mask2 = 0; + } + offset->large.val.woff = lcword; + offset->large.val.boff = lcboff; + offset->large.val.mask1 = mask(lval_len, lcboff); + if(update_current_offsets(lcword, lcboff, lval_len)) { + offset->large.val.mask2 = mask(lcboff, 0); + offset->large.val.shift = lval_len - lcboff; + offset->large.val.cshift = lcboff; + } else { + offset->large.val.mask2 = 0; + offset->large.val.shift = lval_len; + offset->large.val.cshift = 0; + } + + offset++; + } while(cboff != 0 && cboff < bsizeof(word) - 2); + + block_info res = { static_cast(offset - offsets), cword + (cboff == 0 ? 0 : 1) }; + return res; + } +} + +#endif // __OFFSETS_KEY_VALUE_HPP__ diff --git a/src/inc/jellyfish/parse_dna.hpp b/src/inc/jellyfish/parse_dna.hpp new file mode 100644 index 00000000..cd1eb837 --- /dev/null +++ b/src/inc/jellyfish/parse_dna.hpp @@ -0,0 +1,194 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_PARSE_DNA_HPP__ +#define __JELLYFISH_PARSE_DNA_HPP__ + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace jellyfish { + class parse_dna : public double_fifo_input { + typedef std::vector fary_t; + + uint_t mer_len; + size_t buffer_size; + const fary_t files; + fary_t::const_iterator current_file; + bool have_seam; + char *seam; + allocators::mmap buffer_data; + bool canonical; + sequence_parser *fparser; + + public: + /* Action to take for a given letter in fasta file: + * A, C, G, T: map to 0, 1, 2, 3. Append to kmer + * Other nucleic acid code: map to -1. reset kmer + * '\n': map to -2. ignore + * Other ASCII: map to -3. Report error. + */ + static uint64_t mer_string_to_binary(const char *in, uint_t klen) { + uint64_t res = 0; + for(uint_t i = 0; i < klen; i++) { + const uint_t c = dna_codes[(uint_t)*in++]; + if(c & CODE_NOT_DNA) + return 0; + res = (res << 2) | c; + } + return res; + } + static void mer_binary_to_string(uint64_t mer, uint_t klen, char *out) { + static const char table[4] = { 'A', 'C', 'G', 'T' }; + + for(unsigned int i = 0 ; i < klen; i++) { + out[klen-1-i] = table[mer & (uint64_t)0x3]; + mer >>= 2; + } + out[klen] = '\0'; + } + + static uint64_t reverse_complement(uint64_t v, uint_t length) { + v = ((v >> 2) & 0x3333333333333333UL) | ((v & 0x3333333333333333UL) << 2); + v = ((v >> 4) & 0x0F0F0F0F0F0F0F0FUL) | ((v & 0x0F0F0F0F0F0F0F0FUL) << 4); + v = ((v >> 8) & 0x00FF00FF00FF00FFUL) | ((v & 0x00FF00FF00FF00FFUL) << 8); + v = ((v >> 16) & 0x0000FFFF0000FFFFUL) | ((v & 0x0000FFFF0000FFFFUL) << 16); + v = ( v >> 32 ) | ( v << 32); + return (((uint64_t)-1) - v) >> (bsizeof(v) - (length << 1)); + } + + template + parse_dna(T _files_start, T _files_end, uint_t _mer_len, + unsigned int nb_buffers, size_t _buffer_size); + + ~parse_dna() { + delete [] seam; + } + + void set_canonical(bool v = true) { canonical = v; } + virtual void fill(); + + class thread { + parse_dna *parser; + bucket_t *sequence; + const uint_t mer_len, lshift; + uint64_t kmer, rkmer; + const uint64_t masq; + uint_t cmlen; + const bool canonical; + uint64_t distinct, total; + typedef void (*error_reporter)(std::string& err); + error_reporter error_report; + + public: + explicit thread(parse_dna *_parser) : + parser(_parser), sequence(0), + mer_len(_parser->mer_len), lshift(2 * (mer_len - 1)), + kmer(0), rkmer(0), masq((1UL << (2 * mer_len)) - 1), + cmlen(0), canonical(parser->canonical), + distinct(0), total(0), error_report(0) {} + + uint64_t get_uniq() const { return 0; } + uint64_t get_distinct() const { return distinct; } + uint64_t get_total() const { return total; } + + template + void parse(T &counter) { + cmlen = kmer = rkmer = 0; + while((sequence = parser->next())) { + const char *start = sequence->start; + const char * const end = sequence->end; + while(start < end) { + const uint_t c = dna_codes[(uint_t)*start++]; + switch(c) { + case CODE_IGNORE: break; + case CODE_COMMENT: + report_bad_input(*(start-1)); + // Fall through + case CODE_RESET: + cmlen = kmer = rkmer = 0; + break; + + default: + kmer = ((kmer << 2) & masq) | c; + rkmer = (rkmer >> 2) | ((0x3 - c) << lshift); + if(++cmlen >= mer_len) { + cmlen = mer_len; + typename T::val_type oval; + if(canonical) + counter->add(kmer < rkmer ? kmer : rkmer, 1, &oval); + else + counter->add(kmer, 1, &oval); + distinct += oval == (typename T::val_type)0; + ++total; + } + } + } + + // Buffer exhausted. Get a new one + cmlen = kmer = rkmer = 0; + parser->release(sequence); + } + } + + void set_error_reporter(error_reporter e) { + error_report = e; + } + + private: + void report_bad_input(char c) { + if(!error_report) + return; + std::string err("Bad character in sequence: "); + err += c; + error_report(err); + } + }; + friend class thread; + thread new_thread() { return thread(this); } + }; +} + +template +jellyfish::parse_dna::parse_dna(T _files_start, T _files_end, + uint_t _mer_len, + unsigned int nb_buffers, size_t _buffer_size) : + double_fifo_input(nb_buffers), mer_len(_mer_len), + buffer_size(allocators::mmap::round_to_page(_buffer_size)), + files(_files_start, _files_end), current_file(files.begin()), + have_seam(false), buffer_data(buffer_size * nb_buffers), canonical(false) +{ + seam = new char[mer_len]; + memset(seam, 'A', mer_len); + + unsigned long i = 0; + for(bucket_iterator it = bucket_begin(); + it != bucket_end(); ++it, ++i) { + it->end = it->start = (char *)buffer_data.get_ptr() + i * buffer_size; + } + assert(i == nb_buffers); + + fparser = sequence_parser::new_parser(*current_file); +} + + +#endif diff --git a/src/inc/jellyfish/parse_quake.hpp b/src/inc/jellyfish/parse_quake.hpp new file mode 100644 index 00000000..1b55b271 --- /dev/null +++ b/src/inc/jellyfish/parse_quake.hpp @@ -0,0 +1,152 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_PARSE_QUAKE_HPP__ +#define __JELLYFISH_PARSE_QUAKE_HPP__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace jellyfish { + class parse_quake : public double_fifo_input { + typedef std::vector fary_t; + + uint_t mer_len; + size_t buffer_size; + const fary_t files; + fary_t::const_iterator current_file; + bool have_seam; + allocators::mmap buffer_data; + struct seq *buffers; + char *seam; + const char quality_start; + bool canonical; + seq_qual_parser *fparser; + + public: + /* Action to take for a given letter in fasta file: + * A, C, G, T: map to 0, 1, 2, 3. Append to kmer + * Other nucleic acid code: map to -1. reset kmer + * '\n': map to -2. ignore + * Other ASCII: map to -3. Skip to next line + */ + + static const float proba_codes[41]; + static const float one_minus_proba_codes[41]; + + parse_quake(const fary_t &_files, uint_t _mer_len, + unsigned int nb_buffers, size_t _buffer_size, + const char _qs); + + ~parse_quake() { } + + void set_canonical(bool v = true) { canonical = v; } + virtual void fill(); + + class thread { + parse_quake *parser; + bucket_t *sequence; + const uint_t mer_len, lshift; + uint64_t kmer, rkmer; + const uint64_t masq; + uint_t cmlen; + const bool canonical; + circular_buffer quals; + const char quality_start; + uint64_t distinct, total; + typedef void (*error_reporter)(std::string& err); + error_reporter error_report; + + public: + thread(parse_quake *_parser, const char _qs) : + parser(_parser), sequence(0), + mer_len(_parser->mer_len), lshift(2 * (mer_len - 1)), + kmer(0), rkmer(0), masq((1UL << (2 * mer_len)) - 1), + cmlen(0), canonical(parser->canonical), quals(mer_len), + quality_start(_qs), + distinct(0), total(0), error_report(0) { } + + uint64_t get_distinct() const { return distinct; } + uint64_t get_total() const { return total; } + + template + void parse(T &counter) { + cmlen = kmer = rkmer = 0; + while((sequence = parser->next())) { + const char *start = sequence->start; + const char * const end = sequence->end; + while(start < end) { + const uint_t c = dna_codes[(uint_t)*start++]; + const char q = *start++; + switch(c) { + case CODE_IGNORE: break; + case CODE_COMMENT: + report_bad_input(*(start-2)); + // Fall through + case CODE_RESET: + cmlen = kmer = rkmer = 0; + break; + + default: + kmer = ((kmer << 2) & masq) | c; + rkmer = (rkmer >> 2) | ((0x3 - c) << lshift); + const float one_minus_p = one_minus_proba_codes[(uint_t)(q - quality_start)]; + quals.append(one_minus_p); + if(++cmlen >= mer_len) { + cmlen = mer_len; + Float oval; + + if(canonical) + counter->add(kmer < rkmer ? kmer : rkmer, quals.prod(), &oval); + else + counter->add(kmer, quals.prod(), &oval); + distinct += oval == (Float)0.0f; + ++total; + } + } + } + + // Buffer exhausted. Get a new one + cmlen = kmer = rkmer = 0; + parser->release(sequence); + } + } + + void set_error_reporter(error_reporter e) { + error_report = e; + } + private: + void report_bad_input(char c) { + if(!error_report) + return; + std::string error("Bad character in sequence: "); + error += c; + error_report(error); + } + }; + friend class thread; + thread new_thread() { return thread(this, quality_start); } + }; +} + +#endif diff --git a/src/inc/jellyfish/parse_qual_dna.hpp b/src/inc/jellyfish/parse_qual_dna.hpp new file mode 100644 index 00000000..cdaa2d02 --- /dev/null +++ b/src/inc/jellyfish/parse_qual_dna.hpp @@ -0,0 +1,147 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_PARSE_QUAL_DNA_HPP__ +#define __JELLYFISH_PARSE_QUAL_DNA_HPP__ + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace jellyfish { + class parse_qual_dna : public double_fifo_input { + typedef std::vector fary_t; + + uint_t mer_len; + size_t buffer_size; + const fary_t files; + fary_t::const_iterator current_file; + bool have_seam; + allocators::mmap buffer_data; + char *seam; + const char quality_start; + const char min_q; + bool canonical; + seq_qual_parser *fparser; + + public: + /* Action to take for a given letter in fasta file: + * A, C, G, T: map to 0, 1, 2, 3. Append to kmer + * Other nucleic acid code: map to -1. reset kmer + * '\n': map to -2. ignore + * Other ASCII: map to -3. Skip to next line + */ + parse_qual_dna(const fary_t &_files, uint_t _mer_len, + unsigned int nb_buffers, size_t _buffer_size, + const char _qs, const char _min_q); + + ~parse_qual_dna() { } + + void set_canonical(bool v = true) { canonical = v; } + virtual void fill(); + + class thread { + parse_qual_dna *parser; + bucket_t *sequence; + const uint_t mer_len, lshift; + uint64_t kmer, rkmer; + const uint64_t masq; + uint_t cmlen; + const bool canonical; + const char q_thresh; + uint64_t distinct, total; + typedef void (*error_reporter)(std::string& err); + error_reporter error_report; + + public: + thread(parse_qual_dna *_parser, const char _qs, const char _min_q) : + parser(_parser), sequence(0), + mer_len(_parser->mer_len), lshift(2 * (mer_len - 1)), + kmer(0), rkmer(0), masq((1UL << (2 * mer_len)) - 1), + cmlen(0), canonical(parser->canonical), + q_thresh(_qs + _min_q), + distinct(0), total(0), error_report(0) { } + + uint64_t get_distinct() const { return distinct; } + uint64_t get_total() const { return total; } + + template + void parse(T &counter) { + cmlen = kmer = rkmer = 0; + while((sequence = parser->next())) { + const char *start = sequence->start; + const char * const end = sequence->end; + while(start < end) { + uint_t c = dna_codes[(uint_t)*start++]; + const char q = *start++; + if(q < q_thresh) + c = CODE_RESET; + + switch(c) { + case CODE_IGNORE: break; + case CODE_COMMENT: + report_bad_input(*(start-1)); + // Fall through + case CODE_RESET: + cmlen = kmer = rkmer = 0; + break; + + default: + kmer = ((kmer << 2) & masq) | c; + rkmer = (rkmer >> 2) | ((0x3 - c) << lshift); + if(++cmlen >= mer_len) { + cmlen = mer_len; + typename T::val_type oval; + if(canonical) + counter->add(kmer < rkmer ? kmer : rkmer, 1, &oval); + else + counter->add(kmer, 1, &oval); + distinct += !oval; + ++total; + } + } + } + + // Buffer exhausted. Get a new one + cmlen = kmer = rkmer = 0; + parser->release(sequence); + } + } + + void set_error_reporter(error_reporter e) { + error_report = e; + } + + private: + void report_bad_input(char c) { + if(!error_report) + return; + std::string error("Bad input: "); + error += c; + error_report(error); + } + }; + friend class thread; + thread new_thread() { return thread(this, quality_start, min_q); } + }; +} + +#endif diff --git a/src/inc/jellyfish/raw_dumper.hpp b/src/inc/jellyfish/raw_dumper.hpp new file mode 100644 index 00000000..3b9c8aff --- /dev/null +++ b/src/inc/jellyfish/raw_dumper.hpp @@ -0,0 +1,244 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __RAW_DUMPER_HPP__ +#define __RAW_DUMPER_HPP__ + +#include +#include +#include +#include +#include + +namespace jellyfish { + namespace raw_hash { + static const char *file_type __attribute__((used)) = "JFRHSHDN"; + struct header { + char type[8]; + uint64_t key_len; + uint64_t val_len; + uint64_t size; + uint64_t max_reprobe; + }; + define_error_class(ErrorReading); + template + class dumper : public dumper_t, public thread_exec { + typedef token_ring token_ring_t; + struct thread_info_t { + token_ring_t::token *token; + }; + const uint_t threads; + const std::string file_prefix; + storage_t *const ary; + int file_index; + token_ring_t tr; + + struct thread_info_t *thread_info; + size_t nb_records, nb_blocks; + std::ofstream *out; + + public: + dumper(uint_t _threads, const char *_file_prefix, size_t chunk_size, storage_t *_ary) : + threads(_threads), file_prefix(_file_prefix), + ary(_ary), file_index(0), tr() + { + nb_records = ary->floor_block(chunk_size / ary->get_block_len(), nb_blocks); + while(nb_records < ary->get_max_reprobe_offset()) { + nb_records = ary->floor_block(2 * nb_records, nb_blocks); + } + thread_info = new struct thread_info_t[threads]; + for(uint_t i = 0; i < threads; i++) { + thread_info[i].token = tr.new_token(); + } + } + + ~dumper() { + if(thread_info) { + delete[] thread_info; + } + } + + virtual void start(int i) { dump_to_file(i); } + void dump_to_file(int i); + void write_header(); + + virtual void _dump(); + }; + + template + class query { + public: + typedef _storage_t storage_t; + typedef typename storage_t::iterator iterator; + + private: + mapped_file _file; + storage_t *_ary; + bool _canonical; + bool _cary_bit; + SquareBinaryMatrix hash_matrix; + SquareBinaryMatrix hash_inverse_matrix; + + public: + explicit query(mapped_file &map) : + _file(map), _ary(0), _canonical(false), _cary_bit(false) { + _ary = init(_file, hash_matrix, hash_inverse_matrix); + } + explicit query(std::string filename) : + _file(filename.c_str()), _ary(0), _canonical(false), _cary_bit(false) + { + _ary = init(_file, hash_matrix, hash_inverse_matrix); + } + explicit query(const char* filename) : + _file(filename), _ary(0), _canonical(false), _cary_bit(false) + { + _ary = init(_file, hash_matrix, hash_inverse_matrix); + } + + ~query() { + if(_ary) + delete _ary; + } + + size_t get_size() const { return _ary->get_size(); } + size_t get_key_len() const { return _ary->get_key_len(); } + uint_t get_mer_len() const { return _ary->get_key_len() / 2; } + uint_t get_val_len() const { return _ary->get_val_len(); } + uint_t get_max_reprobe() const { return _ary->get_max_reprobe(); } + size_t get_max_reprobe_offset() const { return _ary->get_max_reprobe_offset(); } + bool get_canonical() const { return _canonical; } + void set_canonical(bool v) { _canonical = v; } + bool get_cary_bit() const { return _cary_bit; } + void set_cary_bit(bool v) { _cary_bit = v; } + SquareBinaryMatrix get_hash_matrix() { return hash_matrix; } + SquareBinaryMatrix get_hash_inverse_matrix() { return hash_inverse_matrix; } + storage_t *get_ary() const { return _ary; } + + iterator get_iterator() const { return iterator_all(); } + iterator iterator_all() const { return _ary->iterator_all(); } + iterator iterator_slice(size_t slice_number, size_t number_of_slice) const { + return _ary->iterator_slice(slice_number, number_of_slice); + } + + typename storage_t::val_t operator[](const char *key_s) const { + typename storage_t::key_t key = parse_dna::mer_string_to_binary(key_s, get_mer_len()); + return (*this)[key]; + } + typename storage_t::val_t operator[](const typename storage_t::key_t &key) const { + typename storage_t::val_t res = 0; + bool success; + if(_canonical) { + typename storage_t::key_t key2 = parse_dna::reverse_complement(key, get_mer_len()); + success = _ary->get_val(key2 < key ? key2 : key, res, true, _cary_bit); + } else + success = _ary->get_val(key, res, true, _cary_bit); + return success ? res : 0; + } + + bool has_key(const char *key_s) const { + return has_key(parse_dna::mer_string_to_binary(key_s, get_mer_len())); + } + bool has_key(const typename storage_t::key_t &key) const { + typename storage_t::val_t res = 0; + if(_canonical) { + typename storage_t::key_t key2 = parse_dna::reverse_complement(key, get_mer_len()); + return _ary->get_val(key2 < key ? key2 : key, res, false); + } else { + return _ary->get_val(key, res, false); + } + } + + + static storage_t* init(mapped_file& _file, + SquareBinaryMatrix& hash_matrix, + SquareBinaryMatrix& hash_inverse_matrix) { + if(_file.length() < sizeof(struct header)) + eraise(ErrorReading) << "'" << _file.path() << "': " + << "File truncated"; + char *map = _file.base(); + struct header *header = (struct header *)map; + map += sizeof(struct header); + if(strncmp(header->type, file_type, sizeof(header->type))) + eraise(ErrorReading) << "'" << _file.path() << "': " + << "Invalid file format '" + << err::substr(header->type, sizeof(header->type)) + << "'. Expected '" << file_type << "'."; + if(header->size != (1UL << floorLog2(header->size))) + eraise(ErrorReading) << "'" << _file.path() << "': " + << "Size '" << header->size << "' is not a power of 2"; + if(header->key_len > 64 || header->key_len == 0) + eraise(ErrorReading) << "'" << _file.path() << "': " + << "Invalid key length '" << header->key_len << "'"; + // TODO: Should that be in the file instead? + // reprobes = jellyfish::quadratic_reprobes; + map += hash_matrix.read(map); + if((uint_t)hash_matrix.get_size() != header->key_len) + eraise(ErrorReading) << "'" << _file.path() << "': " + << "Size of hash matrix '" << hash_matrix.get_size() + << "' not equal to key length '" << header->key_len << "'"; + map += hash_inverse_matrix.read(map); + if((uint_t)hash_inverse_matrix.get_size() != header->key_len) + eraise(ErrorReading) << "'" << _file.path() << "': " + << "Size of inverse hash matrix '" << hash_inverse_matrix.get_size() + << "' not equal to key length '" << header->key_len << "'"; + if((size_t)map & 0x7) + map += 0x8 - ((size_t)map & 0x7); // Make sure aligned for 64bits word. TODO: use alignof? + return new storage_t(map, header->size, header->key_len, header->val_len, + header->max_reprobe, jellyfish::quadratic_reprobes, + hash_matrix, hash_inverse_matrix); + } + }; + + template + void dumper::_dump() { + std::ofstream _out; + open_next_file(file_prefix.c_str(), &file_index, _out); + out = &_out; + tr.reset(); + write_header(); + exec_join(threads); + _out.close(); + } + + template + void dumper::dump_to_file(int id) { + size_t i; + struct thread_info_t *my_info = &thread_info[id]; + + for(i = id; i * nb_records < ary->get_size(); i += threads) { + my_info->token->wait(); + ary->write_blocks(out, i * nb_blocks, nb_blocks); + my_info->token->pass(); + ary->zero_blocks(i * nb_blocks, nb_blocks); + } + } + + template + void dumper::write_header() { + struct header header; + memcpy(&header.type, file_type, sizeof(header.type)); + header.key_len = ary->get_key_len(); + header.val_len = ary->get_val_len(); + header.size = ary->get_size(); + header.max_reprobe = ary->get_max_reprobe(); + out->write((char *)&header, sizeof(header)); + ary->write_ary_header(out); + } + + } +} + +#endif diff --git a/src/inc/jellyfish/seq_qual_parser.hpp b/src/inc/jellyfish/seq_qual_parser.hpp new file mode 100644 index 00000000..c6c38cf5 --- /dev/null +++ b/src/inc/jellyfish/seq_qual_parser.hpp @@ -0,0 +1,66 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_SEQ_QUAL_PARSER_HPP__ +#define __JELLYFISH_SEQ_QUAL_PARSER_HPP__ + +#include +#include +#include +#include +#include + +namespace jellyfish { + class seq_qual_parser : public file_parser { + public: + seq_qual_parser(int fd, const char *path, const char *str, size_t len) : + file_parser(fd, path, str, len) {} + virtual ~seq_qual_parser() {} + + struct sequence_t { + char *start; + char *end; + }; + static seq_qual_parser *new_parser(const char *path); + + // parse some input data into the buffer [start, *end). Returns + // false if there is no more data in the input. **end is an + // input/output parameter. It points past the end of the buffer + // when called and should point past the end of the data when + // returned. The base and its ASCII qual value are one next to + // another. + virtual bool parse(char *start, char **end) = 0; + + protected: + }; + + class fastq_seq_qual_parser : public seq_qual_parser { + public: + fastq_seq_qual_parser(int fd, const char *path, const char *str, size_t len) : + seq_qual_parser(fd, path, str, len) {} + + virtual ~fastq_seq_qual_parser() {} + virtual bool parse(char *start, char **end); + + define_error_class(FastqSeqQualParserError); + + private: + void copy_qual_values(char *&qual_start, const char *start); + simple_growing_array _read_buf; + }; +} + +#endif diff --git a/src/inc/jellyfish/sequence_parser.hpp b/src/inc/jellyfish/sequence_parser.hpp new file mode 100644 index 00000000..5df903fe --- /dev/null +++ b/src/inc/jellyfish/sequence_parser.hpp @@ -0,0 +1,71 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_SEQUENCE_PARSER_HPP__ +#define __JELLYFISH_SEQUENCE_PARSER_HPP__ + +#include +#include +#include +#include +#include + +namespace jellyfish { + class sequence_parser : public file_parser { + protected: + public: + sequence_parser(int fd, const char *path, const char *str, size_t len) : + file_parser(fd, path, str, len) { } + virtual ~sequence_parser() { } + + struct sequence_t { + char *start; + char *end; + }; + static sequence_parser *new_parser(const char *path); + + // parse some input data into the buffer [start, *end). Returns + // false if there is no more data in the input. **end is an + // input/output parameter. It points past the end of the buffer + // when called and should point past the end of the data when + // returned. + virtual bool parse(char *start, char **end) = 0; + }; + + class fasta_sequence_parser : public sequence_parser { + public: + fasta_sequence_parser(int fd, const char *path, const char *str, size_t len) : + sequence_parser(fd, path, str, len) {} + + virtual ~fasta_sequence_parser() {} + + virtual bool parse(char *start, char **end); + }; + + class fastq_sequence_parser : public sequence_parser { + unsigned long seq_len; + public: + fastq_sequence_parser(int fd, const char *path, const char *str, + size_t len) : + sequence_parser(fd, path, str, len), seq_len(0) {} + + virtual ~fastq_sequence_parser() {} + virtual bool parse(char *start, char **end); + + }; +} + +#endif diff --git a/src/inc/jellyfish/simple_circular_buffer.hpp b/src/inc/jellyfish/simple_circular_buffer.hpp new file mode 100644 index 00000000..cf1f7d31 --- /dev/null +++ b/src/inc/jellyfish/simple_circular_buffer.hpp @@ -0,0 +1,134 @@ +/* Jellyfish + * Copyright (C) 2012 Genome group at University of Maryland. + * + * 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 . + */ + +#ifndef __SIMPLE_CIRCULAR_BUFFER_H__ +#define __SIMPLE_CIRCULAR_BUFFER_H__ + +#include + +namespace jellyfish { + namespace simple_circular_buffer { + + // T: type of element in container. D: type of derived class for + // CRTP. A: allocator type. + template + class base { + public: + explicit base(T* data) : + data_(data), front_(0), back_(0), full_(false) + { } + + // Return true if empty + bool empty() const { + return front_ == back_ && !full(); + } + // Return true if full + bool full() const { + return full_; + } + void clear() { + front_ = back_; + full_ = false; + } + + // Valid only if empty() is false + T& front() { + return data_[front_]; + } + // Valid only if empty() is false + T& back() { + return data_[prev_index(back_)]; + } + + // Unlike the corresponding method on list or deqeue, push_back may + // fail if full() is true. Then false is returned. + bool push_back(const T& x) { + if(full()) + return false; + data_[back_] = x; + back_ = next_index(back_); + full_ = back_ == front_; + return true; + } + + bool push_back() { + if(full()) + return false; + back_ = next_index(back_); + full_ = back_ == front_; + return true; + } + + // Pop an element from the front. It has no effect if empty() is true + void pop_front() { + if(empty()) + return; + front_ = next_index(front_); + full_ = false; + } + + int size() const { + if(full()) + return static_cast(this)->capacity(); + int s = back_ - front_; + return s < 0 ? s + static_cast(this)->capacity() : s; + } + + protected: + int next_index(int i) const { + return (i + 1) % static_cast(this)->capacity(); + } + int prev_index(int i) const { + return i ? i - 1 : static_cast(this)->capacity() - 1; + } + T* data() const { return data_; } + + T* data_; + int front_, back_; + bool full_; + }; + + template + class pre_alloc : public base > { + typedef base > super; + public: + explicit pre_alloc(T* data) : super(data) { } + static int capacity() { return capa; } + }; + + // template > + // class fixed : public base, A> { + // typedef base, A> super; + // public: + // explicit fixed(const T v = T()) : super(capa, v) { } + // // fixed(const int ignored_size, const T v = T()) : super(capa, v) { } + + // int capacity() const { return capa; } + // }; + + // template > + // class dyn : public base, A> { + // typedef base, A> super; + // public: + // explicit dyn(int size, const T v = T()) : super(size, v), capa_(size) { } + + // int capacity() const { return capa_; } + // int capa_; + // }; + } +} +#endif /* __SIMPLE_CIRCULAR_BUFFER_H__ */ diff --git a/src/inc/jellyfish/simple_growing_array.hpp b/src/inc/jellyfish/simple_growing_array.hpp new file mode 100644 index 00000000..9a7f117d --- /dev/null +++ b/src/inc/jellyfish/simple_growing_array.hpp @@ -0,0 +1,60 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +// Simple growing array. Never shrinks. No construction or destruction +// of objects in array, only copy with pushback() methods +namespace jellyfish { + template + class simple_growing_array { + size_t _capacity; + size_t _size; + T *_data; + public: + explicit simple_growing_array(size_t capacity = 100) : + _capacity(capacity / 2), _size(0), _data(0) { resize(); } + + virtual ~simple_growing_array() { + free(_data); + } + + void push_back(const T &x) { + if(_size >= _capacity) + resize(); + _data[_size++] = x; + } + + void reset() { _size = 0; } + + size_t size() const { return _size; } + bool empty() const { return _size == 0; } + const T * begin() const { return _data; } + const T * end() const { return _data + _size; } + + private: + define_error_class(SimpleGrowingArrayError); + void resize() { + _capacity *= 2; + void * ndata = realloc(_data, sizeof(T) * _capacity); + if(ndata == 0) { + free(ndata); + _data = 0; + _capacity = _capacity / 2; + eraise(SimpleGrowingArrayError) << "Out of memory" << err::no; + } + _data = (T*)ndata; + } + }; +} diff --git a/src/inc/jellyfish/sorted_dumper.hpp b/src/inc/jellyfish/sorted_dumper.hpp new file mode 100644 index 00000000..ef34738f --- /dev/null +++ b/src/inc/jellyfish/sorted_dumper.hpp @@ -0,0 +1,166 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#include +#include +#include +#include +#include +#include + +namespace jellyfish { + template + class sorted_dumper : public dumper_t, public thread_exec { + typedef typename storage_t::overlap_iterator iterator; + typedef compacted_hash::writer writer_t; + typedef heap_t oheap_t; + typedef token_ring token_ring_t; + + struct thread_info_t { + writer_t writer; + oheap_t heap; + token_ring_t::token *token; + }; + + uint_t threads; + std::string file_prefix; + size_t buffer_size; + uint_t klen, vlen; + uint_t key_len, val_len; + size_t record_len, nb_records, nb_blocks; + storage_t *ary; + int file_index; + token_ring_t tr; + uint64_t lower_count, upper_count; + struct thread_info_t *thread_info; + uint64_t volatile unique, distinct, total, max_count; + std::ofstream *out; + locks::pthread::mutex dump_mutex; + bool one_file; + + public: + // klen: key field length in bits in hash (i.e before rounding up to bytes) + // vlen: value field length in bits + sorted_dumper(uint_t _threads, const char *_file_prefix, size_t _buffer_size, + uint_t _vlen, storage_t *_ary) : + threads(_threads), file_prefix(_file_prefix), buffer_size(_buffer_size), + klen(_ary->get_key_len()), vlen(_vlen), ary(_ary), file_index(0), + tr(), lower_count(0), upper_count(std::numeric_limits::max()), + one_file(false) + { + key_len = bits_to_bytes(klen); + val_len = bits_to_bytes(vlen); + record_len = key_len + val_len; + nb_records = ary->floor_block(_buffer_size / record_len, nb_blocks); + while(nb_records < ary->get_max_reprobe_offset()) { + nb_records = ary->floor_block(2 * nb_records, nb_blocks); + } + + thread_info = new struct thread_info_t[threads]; + for(uint_t i = 0; i < threads; i++) { + // thread_info[i].token = i == 0; + thread_info[i].writer.initialize(nb_records, klen, vlen, ary); + thread_info[i].heap.initialize(ary->get_max_reprobe_offset()); + thread_info[i].token = tr.new_token(); + } + unique = distinct = total = max_count = 0; + } + + ~sorted_dumper() { + if(thread_info) { + delete[] thread_info; + } + } + + bool get_one_file() const { return one_file; } + void set_one_file(bool nv) { one_file = nv; } + + void set_lower_count(uint64_t l) { lower_count = l; } + void set_upper_count(uint64_t u) { upper_count = u; } + + virtual void start(int i) { dump_to_file(i); } + void dump_to_file(int i); + + virtual void _dump(); + void update_stats() { + thread_info[0].writer.update_stats_with(out, unique, distinct, total, + max_count); + } + }; + + template + void sorted_dumper::_dump() { + std::ofstream _out; + assert(dump_mutex.try_lock()); + if(one_file) { + _out.open(file_prefix.c_str()); + } else { + open_next_file(file_prefix.c_str(), &file_index, _out); + } + out = &_out; + unique = distinct = total = max_count = 0; + tr.reset(); + thread_info[0].writer.write_header(out); + exec_join(threads); + ary->zero_blocks(0, nb_blocks); // zero out last group of blocks + update_stats(); + _out.close(); + dump_mutex.unlock(); + } + + template + void sorted_dumper::dump_to_file(int id) { + size_t i; + struct thread_info_t *my_info = &thread_info[id]; + atomic_t atomic; + + my_info->writer.reset_counters(); + + for(i = id; i * nb_records < ary->get_size(); i += threads) { + // fill up buffer + iterator it(ary, i * nb_records, (i + 1) * nb_records); + my_info->heap.fill(it); + + while(it.next()) { + typename oheap_t::const_item_t item = my_info->heap.head(); + if(item->val >= lower_count && item->val <= upper_count) + my_info->writer.append(item->key, item->val); + my_info->heap.pop(); + my_info->heap.push(it); + } + + while(my_info->heap.is_not_empty()) { + typename oheap_t::const_item_t item = my_info->heap.head(); + if(item->val >= lower_count && item->val <= upper_count) + my_info->writer.append(item->key, item->val); + my_info->heap.pop(); + } + + my_info->token->wait(); + my_info->writer.dump(out); + my_info->token->pass(); + + // zero out memory + if(i > 0) + ary->zero_blocks(i * nb_blocks, nb_blocks); + } + + atomic.add_fetch(&unique, my_info->writer.get_unique()); + atomic.add_fetch(&distinct, my_info->writer.get_distinct()); + atomic.add_fetch(&total, my_info->writer.get_total()); + atomic.set_to_max(&max_count, my_info->writer.get_max_count()); + } +} diff --git a/src/inc/jellyfish/square_binary_matrix.hpp b/src/inc/jellyfish/square_binary_matrix.hpp new file mode 100644 index 00000000..67e3f495 --- /dev/null +++ b/src/inc/jellyfish/square_binary_matrix.hpp @@ -0,0 +1,203 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_SQUARE_BINARY_MATRIX_HPP__ +#define __JELLYFISH_SQUARE_BINARY_MATRIX_HPP__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class SquareBinaryMatrix { +public: + define_error_class(ErrorAllocation); + define_error_class(SingularMatrix); + define_error_class(MismatchingSize); + +private: + uint64_t *columns; + int size; + + uint64_t mask() const { return (((uint64_t)1) << size) - 1; } + uint64_t msb() const { return ((uint64_t)1) << (size - 1); } + uint64_t *first_alloc(size_t size) { + uint64_t *res = calloc_align((size_t)size, (size_t)16); + if(!res) + eraise(ErrorAllocation) << "Can't allocate matrix of size '" << size << "'"; + return res; + } + void alloc_columns() { + if(columns) { + free(columns); + columns = 0; + } + if(size < 0 || size > 64) + eraise(MismatchingSize) << "Invalid matrix size '" << size << "'"; + columns = first_alloc(size); + } + +public: + SquareBinaryMatrix() : columns(0), size(0) { } + + explicit SquareBinaryMatrix(int _size) :columns(first_alloc(_size)), size(_size) { + memset(columns, '\0', sizeof(uint64_t) * _size); + } + SquareBinaryMatrix(const SquareBinaryMatrix &rhs) : columns(first_alloc(rhs.get_size())), size(rhs.get_size()) { + int i; + + uint64_t _mask = mask(); + for(i = 0; i < size; i++) + columns[i] = rhs.columns[i] & _mask; + } + SquareBinaryMatrix(const uint64_t *_columns, int _size) : columns(first_alloc(_size)), size(_size) { + int i; + uint64_t _mask = mask(); + + for(i = 0; i < size; i++) + columns[i] = _columns[i] & _mask; + } + explicit SquareBinaryMatrix(const char *map) : columns(0), size(0) { + read(map); + } + explicit SquareBinaryMatrix(std::istream *is) : columns(0), size(0) { + load(is); + } + + ~SquareBinaryMatrix() { + if(columns) + free(columns); + } + + void swap(SquareBinaryMatrix &rhs) { + std::swap(columns, rhs.columns); + std::swap(size, rhs.size); + } + + SquareBinaryMatrix &operator=(SquareBinaryMatrix rhs) { + this->swap(rhs); + return *this; + } + + void init_random(); + + SquareBinaryMatrix init_random_inverse(); + + void init_identity() { + uint64_t v = msb(); + int i; + for(i = 0; v; i++, v >>= 1) + columns[i] = v; + } + + bool is_identity() const { + uint64_t v = msb(); + int i; + + for(i = 0; i < size; i++, v >>= 1) { + if(columns[i] != v) + return false; + } + return true; + } + + bool is_zero() const { + int i; + for(i = 0; i < size; i++) + if(columns[i]) + return false; + return true; + } + + void resize(int ns) { size = ns; alloc_columns(); } + int get_size() const { return size; } + + bool operator==(const SquareBinaryMatrix &other) const { + int i; + if(size != other.get_size()) + return false; + for(i = 0; i < size; i++) + if(columns[i] != other.columns[i]) + return false; + + return true; + } + + bool operator!=(const SquareBinaryMatrix &other) const { + return !(*this == other); + } + + uint64_t & operator[](int i) { + return columns[i]; + } + + uint64_t operator[](int i) const { + return columns[i]; + } + + uint64_t times_loop(uint64_t v) const { + uint64_t res = 0, *c = columns+(size-1); + + for ( ; v; v >>= 1) + res ^= (-(v & 1)) & *c--; + return res; + } + + uint64_t times_unrolled(uint64_t v) const; + uint64_t times_sse(uint64_t v) const; + + inline uint64_t times(uint64_t v) const { +#ifdef HAVE_SSE + return times_sse(v); +#else + return times_unrolled(v); +#endif + } + + SquareBinaryMatrix transpose() const; + SquareBinaryMatrix operator*(const SquareBinaryMatrix &other) const; + + SquareBinaryMatrix inverse() const; + int pop_count() const { + int i, res = 0; + for(i = 0; i < size; i++) + res += __builtin_popcountl(columns[i]); + return res; + } + + uint64_t xor_sum() const { + uint64_t sum = 0; + for(int i = 0; i < size; ++i) + sum ^= columns[i]; + return sum; + } + + void print(std::ostream *os) const; + std::string str() const; + void dump(std::ostream *os) const; + void load(std::istream *is); + size_t read(const char *map); + size_t dump_size() { return sizeof(size) + sizeof(uint64_t) * size; } + void print_vector(std::ostream *os, uint64_t v, bool vertical = false) const; + std::string str_vector(uint64_t v, bool vertical = false) const; +}; + +#endif // __SQUARE_BINARY_MATRIX_HPP__ diff --git a/src/inc/jellyfish/storage.hpp b/src/inc/jellyfish/storage.hpp new file mode 100644 index 00000000..692df2de --- /dev/null +++ b/src/inc/jellyfish/storage.hpp @@ -0,0 +1,37 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_STORAGE_HPP__ +#define __JELLYFISH_STORAGE_HPP__ + +#include +#include +#include + +namespace jellyfish { + + class storage_t { + public: + storage_t() {} + virtual ~storage_t() {} + }; + + // Entry 0 is used only when switching to a large field + extern size_t *quadratic_reprobes; + +} + +#endif // __STORAGE_HPP__ diff --git a/src/inc/jellyfish/thread_exec.hpp b/src/inc/jellyfish/thread_exec.hpp new file mode 100644 index 00000000..c0dcb2ff --- /dev/null +++ b/src/inc/jellyfish/thread_exec.hpp @@ -0,0 +1,51 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_THREAD_EXEC_HPP__ +#define __JELLYFISH_THREAD_EXEC_HPP__ + +#include +#include +#include +#include +#include +#include +#include +#include + +class thread_exec { + struct thread_info { + int id; + pthread_t thid; + thread_exec *self; + }; + static void *start_routine(void *); + std::vector infos; + +public: + define_error_class(Error); + thread_exec() {} + virtual ~thread_exec() {} + virtual void start(int id) = 0; + void exec(int nb_threads); + void join(); + void exec_join(int nb_threads) { + exec(nb_threads); + join(); + } +}; + +#endif // __THREAD_EXEC_HPP__ diff --git a/src/inc/jellyfish/time.hpp b/src/inc/jellyfish/time.hpp new file mode 100644 index 00000000..e490c1cd --- /dev/null +++ b/src/inc/jellyfish/time.hpp @@ -0,0 +1,92 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_TIME_HPP__ +#define __JELLYFISH_TIME_HPP__ + +#include +#include +#include +#include + +class Time { + static const suseconds_t max_useconds = 1000000UL; + struct timeval tv; + + public: + static const Time zero; + explicit Time(bool init = true) { + if(init) + now(); + } + Time(time_t sec, suseconds_t usec) { + tv.tv_sec = sec; + tv.tv_usec = usec; + } + Time &operator=(const Time &o) { + if(&o != this) { + tv.tv_sec = o.tv.tv_sec; + tv.tv_usec = o.tv.tv_usec; + } + return *this; + } + + Time & operator-=(const Time &o) { + tv.tv_sec -= o.tv.tv_sec; + if(o.tv.tv_usec > tv.tv_usec) { + tv.tv_usec = (max_useconds + tv.tv_usec) - o.tv.tv_usec; + --tv.tv_sec; + } else { + tv.tv_usec -= o.tv.tv_usec; + } + return *this; + } + const Time operator-(const Time &o) const { + return Time(*this) -= o; + } + + Time & operator+=(const Time &o) { + tv.tv_sec += o.tv.tv_sec; + tv.tv_usec += o.tv.tv_usec; + if(tv.tv_usec >= max_useconds) { + ++tv.tv_sec; + tv.tv_usec -= max_useconds; + } + return *this; + } + const Time operator+(const Time &o) const { + return Time(*this) += o; + } + + bool operator<(const Time& o) const { + return tv.tv_sec < o.tv.tv_sec || (tv.tv_sec == o.tv.tv_sec && tv.tv_usec < o.tv.tv_usec); + } + + void now() { gettimeofday(&tv, NULL); } + Time elapsed() const { + return Time() - *this; + } + + + std::string str() const { + std::ostringstream res; + res << tv.tv_sec << "." + << std::setfill('0') << std::setw(6) << std::right << tv.tv_usec; + return res.str(); + } +}; + +#endif // __TIME_HPP__ diff --git a/src/inc/jellyfish/token_ring.hpp b/src/inc/jellyfish/token_ring.hpp new file mode 100644 index 00000000..69cc7bbe --- /dev/null +++ b/src/inc/jellyfish/token_ring.hpp @@ -0,0 +1,97 @@ +/* This file is part of Jellyfish. + + Jellyfish 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. + + Jellyfish 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 Jellyfish. If not, see . +*/ + +#ifndef __JELLYFISH_TOKEN_RING_HPP__ +#define __JELLYFISH_TOKEN_RING_HPP__ + +template +class token_ring { +public: + class token { + token *next; + bool val; + cond_t cond; + + token(token *_next, bool _val) : + next(_next), val(_val) {} + friend class token_ring; + + public: + bool is_active() { return val; } + void wait() { + cond.lock(); + while(!val) { cond.wait(); } + cond.unlock(); + } + + void pass() { + next->cond.lock(); + val = false; + next->val = true; + next->cond.signal(); + next->cond.unlock(); + } + }; + +private: + token *first, *last; + cond_t cond; + +public: + token_ring() : + first(0), last(0) + { } + + ~token_ring() { + if(!first) + return; + + while(first != last) { + token *del = first; + first = first->next; + delete del; + } + delete last; + } + + void reset() { + if(!first) + return; + + token *c = first; + while(c != last) { + c->val = false; + c = c->next; + } + last->val = false; + first->val = true; + } + + + token *new_token() { + token *nt = new token(first, first == 0); + if(first) { + last->next = nt; + last = nt; + } else { + first = last = nt; + nt->next = nt; + } + return nt; + } +}; + +#endif diff --git a/src/inc/kseq/kseq.h b/src/inc/kseq/kseq.h new file mode 100644 index 00000000..bbe01255 --- /dev/null +++ b/src/inc/kseq/kseq.h @@ -0,0 +1,223 @@ +/* The MIT License + + Copyright (c) 2008 Genome Research Ltd (GRL). + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +/* Contact: Heng Li */ + +/* Last Modified: 12APR2009 */ + +#ifndef AC_KSEQ_H +#define AC_KSEQ_H + +#include +#include +#include + +#define KS_SEP_SPACE 0 // isspace(): \t, \n, \v, \f, \r +#define KS_SEP_TAB 1 // isspace() && !' ' +#define KS_SEP_MAX 1 + +#define __KS_TYPE(type_t) \ + typedef struct __kstream_t { \ + char *buf; \ + int begin, end, is_eof; \ + type_t f; \ + } kstream_t; + +#define ks_eof(ks) ((ks)->is_eof && (ks)->begin >= (ks)->end) +#define ks_rewind(ks) ((ks)->is_eof = (ks)->begin = (ks)->end = 0) + +#define __KS_BASIC(type_t, __bufsize) \ + static inline kstream_t *ks_init(type_t f) \ + { \ + kstream_t *ks = (kstream_t*)calloc(1, sizeof(kstream_t)); \ + ks->f = f; \ + ks->buf = (char*)malloc(__bufsize); \ + return ks; \ + } \ + static inline void ks_destroy(kstream_t *ks) \ + { \ + if (ks) { \ + free(ks->buf); \ + free(ks); \ + } \ + } + +#define __KS_GETC(__read, __bufsize) \ + static inline int ks_getc(kstream_t *ks) \ + { \ + if (ks->is_eof && ks->begin >= ks->end) return -1; \ + if (ks->begin >= ks->end) { \ + ks->begin = 0; \ + ks->end = __read(ks->f, ks->buf, __bufsize); \ + if (ks->end < __bufsize) ks->is_eof = 1; \ + if (ks->end == 0) return -1; \ + } \ + return (int)ks->buf[ks->begin++]; \ + } + +#ifndef KSTRING_T +#define KSTRING_T kstring_t +typedef struct __kstring_t { + size_t l, m; + char *s; +} kstring_t; +#endif + +#ifndef kroundup32 +#define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x)) +#endif + +#define __KS_GETUNTIL(__read, __bufsize) \ + static int ks_getuntil(kstream_t *ks, int delimiter, kstring_t *str, int *dret) \ + { \ + if (dret) *dret = 0; \ + str->l = 0; \ + if (ks->begin >= ks->end && ks->is_eof) return -1; \ + for (;;) { \ + int i; \ + if (ks->begin >= ks->end) { \ + if (!ks->is_eof) { \ + ks->begin = 0; \ + ks->end = __read(ks->f, ks->buf, __bufsize); \ + if (ks->end < __bufsize) ks->is_eof = 1; \ + if (ks->end == 0) break; \ + } else break; \ + } \ + if (delimiter > KS_SEP_MAX) { \ + for (i = ks->begin; i < ks->end; ++i) \ + if (ks->buf[i] == delimiter) break; \ + } else if (delimiter == KS_SEP_SPACE) { \ + for (i = ks->begin; i < ks->end; ++i) \ + if (isspace(ks->buf[i])) break; \ + } else if (delimiter == KS_SEP_TAB) { \ + for (i = ks->begin; i < ks->end; ++i) \ + if (isspace(ks->buf[i]) && ks->buf[i] != ' ') break; \ + } else i = 0; /* never come to here! */ \ + if (str->m - str->l < i - ks->begin + 1) { \ + str->m = str->l + (i - ks->begin) + 1; \ + kroundup32(str->m); \ + str->s = (char*)realloc(str->s, str->m); \ + } \ + memcpy(str->s + str->l, ks->buf + ks->begin, i - ks->begin); \ + str->l = str->l + (i - ks->begin); \ + ks->begin = i + 1; \ + if (i < ks->end) { \ + if (dret) *dret = ks->buf[i]; \ + break; \ + } \ + } \ + if (str->l == 0) { \ + str->m = 1; \ + str->s = (char*)calloc(1, 1); \ + } \ + str->s[str->l] = '\0'; \ + return str->l; \ + } + +#define KSTREAM_INIT(type_t, __read, __bufsize) \ + __KS_TYPE(type_t) \ + __KS_BASIC(type_t, __bufsize) \ + __KS_GETC(__read, __bufsize) \ + __KS_GETUNTIL(__read, __bufsize) + +#define __KSEQ_BASIC(type_t) \ + static inline kseq_t *kseq_init(type_t fd) \ + { \ + kseq_t *s = (kseq_t*)calloc(1, sizeof(kseq_t)); \ + s->f = ks_init(fd); \ + return s; \ + } \ + static inline void kseq_rewind(kseq_t *ks) \ + { \ + ks->last_char = 0; \ + ks->f->is_eof = ks->f->begin = ks->f->end = 0; \ + } \ + static inline void kseq_destroy(kseq_t *ks) \ + { \ + if (!ks) return; \ + free(ks->name.s); free(ks->comment.s); free(ks->seq.s); free(ks->qual.s); \ + ks_destroy(ks->f); \ + free(ks); \ + } + +/* Return value: + >=0 length of the sequence (normal) + -1 end-of-file + -2 truncated quality string + */ +#define __KSEQ_READ \ + static int kseq_read(kseq_t *seq) \ + { \ + int c; \ + kstream_t *ks = seq->f; \ + if (seq->last_char == 0) { /* then jump to the next header line */ \ + while ((c = ks_getc(ks)) != -1 && c != '>' && c != '@'); \ + if (c == -1) return -1; /* end of file */ \ + seq->last_char = c; \ + } /* the first header char has been read */ \ + seq->comment.l = seq->seq.l = seq->qual.l = 0; \ + if (ks_getuntil(ks, 0, &seq->name, &c) < 0) return -1; \ + if (c != '\n') ks_getuntil(ks, '\n', &seq->comment, 0); \ + while ((c = ks_getc(ks)) != -1 && c != '>' && c != '+' && c != '@') { \ + if (isgraph(c)) { /* printable non-space character */ \ + if (seq->seq.l + 1 >= seq->seq.m) { /* double the memory */ \ + seq->seq.m = seq->seq.l + 2; \ + kroundup32(seq->seq.m); /* rounded to next closest 2^k */ \ + seq->seq.s = (char*)realloc(seq->seq.s, seq->seq.m); \ + } \ + seq->seq.s[seq->seq.l++] = (char)c; \ + } \ + } \ + if (c == '>' || c == '@') seq->last_char = c; /* the first header char has been read */ \ + seq->seq.s[seq->seq.l] = 0; /* null terminated string */ \ + if (c != '+') return seq->seq.l; /* FASTA */ \ + if (seq->qual.m < seq->seq.m) { /* allocate enough memory */ \ + seq->qual.m = seq->seq.m; \ + seq->qual.s = (char*)realloc(seq->qual.s, seq->qual.m); \ + } \ + while ((c = ks_getc(ks)) != -1 && c != '\n'); /* skip the rest of '+' line */ \ + if (c == -1) return -2; /* we should not stop here */ \ + while ((c = ks_getc(ks)) != -1 && seq->qual.l < seq->seq.l) \ + if (c >= 33 && c <= 127) seq->qual.s[seq->qual.l++] = (unsigned char)c; \ + seq->qual.s[seq->qual.l] = 0; /* null terminated string */ \ + seq->last_char = 0; /* we have not come to the next header line */ \ + if (seq->seq.l != seq->qual.l) return -2; /* qual string is shorter than seq string */ \ + return seq->seq.l; \ + } + +#define __KSEQ_TYPE(type_t) \ + typedef struct { \ + kstring_t name, comment, seq, qual; \ + int last_char; \ + kstream_t *f; \ + } kseq_t; + +#define KSEQ_INIT(type_t, __read) \ + KSTREAM_INIT(type_t, __read, 4096) \ + __KSEQ_TYPE(type_t) \ + __KSEQ_BASIC(type_t) \ + __KSEQ_READ + +#endif diff --git a/src/inc/zlib/zconf.h b/src/inc/zlib/zconf.h new file mode 100644 index 00000000..996fff29 --- /dev/null +++ b/src/inc/zlib/zconf.h @@ -0,0 +1,511 @@ +/* zconf.h -- configuration of the zlib compression library + * Copyright (C) 1995-2013 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#ifndef ZCONF_H +#define ZCONF_H + +/* + * If you *really* need a unique prefix for all types and library functions, + * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. + * Even better than compiling with -DZ_PREFIX would be to use configure to set + * this permanently in zconf.h using "./configure --zprefix". + */ +#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ +# define Z_PREFIX_SET + +/* all linked symbols */ +# define _dist_code z__dist_code +# define _length_code z__length_code +# define _tr_align z__tr_align +# define _tr_flush_bits z__tr_flush_bits +# define _tr_flush_block z__tr_flush_block +# define _tr_init z__tr_init +# define _tr_stored_block z__tr_stored_block +# define _tr_tally z__tr_tally +# define adler32 z_adler32 +# define adler32_combine z_adler32_combine +# define adler32_combine64 z_adler32_combine64 +# ifndef Z_SOLO +# define compress z_compress +# define compress2 z_compress2 +# define compressBound z_compressBound +# endif +# define crc32 z_crc32 +# define crc32_combine z_crc32_combine +# define crc32_combine64 z_crc32_combine64 +# define deflate z_deflate +# define deflateBound z_deflateBound +# define deflateCopy z_deflateCopy +# define deflateEnd z_deflateEnd +# define deflateInit2_ z_deflateInit2_ +# define deflateInit_ z_deflateInit_ +# define deflateParams z_deflateParams +# define deflatePending z_deflatePending +# define deflatePrime z_deflatePrime +# define deflateReset z_deflateReset +# define deflateResetKeep z_deflateResetKeep +# define deflateSetDictionary z_deflateSetDictionary +# define deflateSetHeader z_deflateSetHeader +# define deflateTune z_deflateTune +# define deflate_copyright z_deflate_copyright +# define get_crc_table z_get_crc_table +# ifndef Z_SOLO +# define gz_error z_gz_error +# define gz_intmax z_gz_intmax +# define gz_strwinerror z_gz_strwinerror +# define gzbuffer z_gzbuffer +# define gzclearerr z_gzclearerr +# define gzclose z_gzclose +# define gzclose_r z_gzclose_r +# define gzclose_w z_gzclose_w +# define gzdirect z_gzdirect +# define gzdopen z_gzdopen +# define gzeof z_gzeof +# define gzerror z_gzerror +# define gzflush z_gzflush +# define gzgetc z_gzgetc +# define gzgetc_ z_gzgetc_ +# define gzgets z_gzgets +# define gzoffset z_gzoffset +# define gzoffset64 z_gzoffset64 +# define gzopen z_gzopen +# define gzopen64 z_gzopen64 +# ifdef _WIN32 +# define gzopen_w z_gzopen_w +# endif +# define gzprintf z_gzprintf +# define gzvprintf z_gzvprintf +# define gzputc z_gzputc +# define gzputs z_gzputs +# define gzread z_gzread +# define gzrewind z_gzrewind +# define gzseek z_gzseek +# define gzseek64 z_gzseek64 +# define gzsetparams z_gzsetparams +# define gztell z_gztell +# define gztell64 z_gztell64 +# define gzungetc z_gzungetc +# define gzwrite z_gzwrite +# endif +# define inflate z_inflate +# define inflateBack z_inflateBack +# define inflateBackEnd z_inflateBackEnd +# define inflateBackInit_ z_inflateBackInit_ +# define inflateCopy z_inflateCopy +# define inflateEnd z_inflateEnd +# define inflateGetHeader z_inflateGetHeader +# define inflateInit2_ z_inflateInit2_ +# define inflateInit_ z_inflateInit_ +# define inflateMark z_inflateMark +# define inflatePrime z_inflatePrime +# define inflateReset z_inflateReset +# define inflateReset2 z_inflateReset2 +# define inflateSetDictionary z_inflateSetDictionary +# define inflateGetDictionary z_inflateGetDictionary +# define inflateSync z_inflateSync +# define inflateSyncPoint z_inflateSyncPoint +# define inflateUndermine z_inflateUndermine +# define inflateResetKeep z_inflateResetKeep +# define inflate_copyright z_inflate_copyright +# define inflate_fast z_inflate_fast +# define inflate_table z_inflate_table +# ifndef Z_SOLO +# define uncompress z_uncompress +# endif +# define zError z_zError +# ifndef Z_SOLO +# define zcalloc z_zcalloc +# define zcfree z_zcfree +# endif +# define zlibCompileFlags z_zlibCompileFlags +# define zlibVersion z_zlibVersion + +/* all zlib typedefs in zlib.h and zconf.h */ +# define Byte z_Byte +# define Bytef z_Bytef +# define alloc_func z_alloc_func +# define charf z_charf +# define free_func z_free_func +# ifndef Z_SOLO +# define gzFile z_gzFile +# endif +# define gz_header z_gz_header +# define gz_headerp z_gz_headerp +# define in_func z_in_func +# define intf z_intf +# define out_func z_out_func +# define uInt z_uInt +# define uIntf z_uIntf +# define uLong z_uLong +# define uLongf z_uLongf +# define voidp z_voidp +# define voidpc z_voidpc +# define voidpf z_voidpf + +/* all zlib structs in zlib.h and zconf.h */ +# define gz_header_s z_gz_header_s +# define internal_state z_internal_state + +#endif + +#if defined(__MSDOS__) && !defined(MSDOS) +# define MSDOS +#endif +#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) +# define OS2 +#endif +#if defined(_WINDOWS) && !defined(WINDOWS) +# define WINDOWS +#endif +#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) +# ifndef WIN32 +# define WIN32 +# endif +#endif +#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) +# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) +# ifndef SYS16BIT +# define SYS16BIT +# endif +# endif +#endif + +/* + * Compile with -DMAXSEG_64K if the alloc function cannot allocate more + * than 64k bytes at a time (needed on systems with 16-bit int). + */ +#ifdef SYS16BIT +# define MAXSEG_64K +#endif +#ifdef MSDOS +# define UNALIGNED_OK +#endif + +#ifdef __STDC_VERSION__ +# ifndef STDC +# define STDC +# endif +# if __STDC_VERSION__ >= 199901L +# ifndef STDC99 +# define STDC99 +# endif +# endif +#endif +#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) +# define STDC +#endif +#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) +# define STDC +#endif +#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) +# define STDC +#endif +#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) +# define STDC +#endif + +#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ +# define STDC +#endif + +#ifndef STDC +# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ +# define const /* note: need a more gentle solution here */ +# endif +#endif + +#if defined(ZLIB_CONST) && !defined(z_const) +# define z_const const +#else +# define z_const +#endif + +/* Some Mac compilers merge all .h files incorrectly: */ +#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) +# define NO_DUMMY_DECL +#endif + +/* Maximum value for memLevel in deflateInit2 */ +#ifndef MAX_MEM_LEVEL +# ifdef MAXSEG_64K +# define MAX_MEM_LEVEL 8 +# else +# define MAX_MEM_LEVEL 9 +# endif +#endif + +/* Maximum value for windowBits in deflateInit2 and inflateInit2. + * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files + * created by gzip. (Files created by minigzip can still be extracted by + * gzip.) + */ +#ifndef MAX_WBITS +# define MAX_WBITS 15 /* 32K LZ77 window */ +#endif + +/* The memory requirements for deflate are (in bytes): + (1 << (windowBits+2)) + (1 << (memLevel+9)) + that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) + plus a few kilobytes for small objects. For example, if you want to reduce + the default memory requirements from 256K to 128K, compile with + make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" + Of course this will generally degrade compression (there's no free lunch). + + The memory requirements for inflate are (in bytes) 1 << windowBits + that is, 32K for windowBits=15 (default value) plus a few kilobytes + for small objects. +*/ + + /* Type declarations */ + +#ifndef OF /* function prototypes */ +# ifdef STDC +# define OF(args) args +# else +# define OF(args) () +# endif +#endif + +#ifndef Z_ARG /* function prototypes for stdarg */ +# if defined(STDC) || defined(Z_HAVE_STDARG_H) +# define Z_ARG(args) args +# else +# define Z_ARG(args) () +# endif +#endif + +/* The following definitions for FAR are needed only for MSDOS mixed + * model programming (small or medium model with some far allocations). + * This was tested only with MSC; for other MSDOS compilers you may have + * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, + * just define FAR to be empty. + */ +#ifdef SYS16BIT +# if defined(M_I86SM) || defined(M_I86MM) + /* MSC small or medium model */ +# define SMALL_MEDIUM +# ifdef _MSC_VER +# define FAR _far +# else +# define FAR far +# endif +# endif +# if (defined(__SMALL__) || defined(__MEDIUM__)) + /* Turbo C small or medium model */ +# define SMALL_MEDIUM +# ifdef __BORLANDC__ +# define FAR _far +# else +# define FAR far +# endif +# endif +#endif + +#if defined(WINDOWS) || defined(WIN32) + /* If building or using zlib as a DLL, define ZLIB_DLL. + * This is not mandatory, but it offers a little performance increase. + */ +# ifdef ZLIB_DLL +# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) +# ifdef ZLIB_INTERNAL +# define ZEXTERN extern __declspec(dllexport) +# else +# define ZEXTERN extern __declspec(dllimport) +# endif +# endif +# endif /* ZLIB_DLL */ + /* If building or using zlib with the WINAPI/WINAPIV calling convention, + * define ZLIB_WINAPI. + * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. + */ +# ifdef ZLIB_WINAPI +# ifdef FAR +# undef FAR +# endif +# include + /* No need for _export, use ZLIB.DEF instead. */ + /* For complete Windows compatibility, use WINAPI, not __stdcall. */ +# define ZEXPORT WINAPI +# ifdef WIN32 +# define ZEXPORTVA WINAPIV +# else +# define ZEXPORTVA FAR CDECL +# endif +# endif +#endif + +#if defined (__BEOS__) +# ifdef ZLIB_DLL +# ifdef ZLIB_INTERNAL +# define ZEXPORT __declspec(dllexport) +# define ZEXPORTVA __declspec(dllexport) +# else +# define ZEXPORT __declspec(dllimport) +# define ZEXPORTVA __declspec(dllimport) +# endif +# endif +#endif + +#ifndef ZEXTERN +# define ZEXTERN extern +#endif +#ifndef ZEXPORT +# define ZEXPORT +#endif +#ifndef ZEXPORTVA +# define ZEXPORTVA +#endif + +#ifndef FAR +# define FAR +#endif + +#if !defined(__MACTYPES__) +typedef unsigned char Byte; /* 8 bits */ +#endif +typedef unsigned int uInt; /* 16 bits or more */ +typedef unsigned long uLong; /* 32 bits or more */ + +#ifdef SMALL_MEDIUM + /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ +# define Bytef Byte FAR +#else + typedef Byte FAR Bytef; +#endif +typedef char FAR charf; +typedef int FAR intf; +typedef uInt FAR uIntf; +typedef uLong FAR uLongf; + +#ifdef STDC + typedef void const *voidpc; + typedef void FAR *voidpf; + typedef void *voidp; +#else + typedef Byte const *voidpc; + typedef Byte FAR *voidpf; + typedef Byte *voidp; +#endif + +#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) +# include +# if (UINT_MAX == 0xffffffffUL) +# define Z_U4 unsigned +# elif (ULONG_MAX == 0xffffffffUL) +# define Z_U4 unsigned long +# elif (USHRT_MAX == 0xffffffffUL) +# define Z_U4 unsigned short +# endif +#endif + +#ifdef Z_U4 + typedef Z_U4 z_crc_t; +#else + typedef unsigned long z_crc_t; +#endif + +#if 1 /* was set to #if 1 by ./configure */ +# define Z_HAVE_UNISTD_H +#endif + +#if 1 /* was set to #if 1 by ./configure */ +# define Z_HAVE_STDARG_H +#endif + +#ifdef STDC +# ifndef Z_SOLO +# include /* for off_t */ +# endif +#endif + +#if defined(STDC) || defined(Z_HAVE_STDARG_H) +# ifndef Z_SOLO +# include /* for va_list */ +# endif +#endif + +#ifdef _WIN32 +# ifndef Z_SOLO +# include /* for wchar_t */ +# endif +#endif + +/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and + * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even + * though the former does not conform to the LFS document), but considering + * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as + * equivalently requesting no 64-bit operations + */ +#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 +# undef _LARGEFILE64_SOURCE +#endif + +#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H) +# define Z_HAVE_UNISTD_H +#endif +#ifndef Z_SOLO +# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) +# include /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ +# ifdef VMS +# include /* for off_t */ +# endif +# ifndef z_off_t +# define z_off_t off_t +# endif +# endif +#endif + +#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 +# define Z_LFS64 +#endif + +#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) +# define Z_LARGE64 +#endif + +#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) +# define Z_WANT64 +#endif + +#if !defined(SEEK_SET) && !defined(Z_SOLO) +# define SEEK_SET 0 /* Seek from beginning of file. */ +# define SEEK_CUR 1 /* Seek from current position. */ +# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ +#endif + +#ifndef z_off_t +# define z_off_t long +#endif + +#if !defined(_WIN32) && defined(Z_LARGE64) +# define z_off64_t off64_t +#else +# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) +# define z_off64_t __int64 +# else +# define z_off64_t z_off_t +# endif +#endif + +/* MVS linker does not support external names larger than 8 bytes */ +#if defined(__MVS__) + #pragma map(deflateInit_,"DEIN") + #pragma map(deflateInit2_,"DEIN2") + #pragma map(deflateEnd,"DEEND") + #pragma map(deflateBound,"DEBND") + #pragma map(inflateInit_,"ININ") + #pragma map(inflateInit2_,"ININ2") + #pragma map(inflateEnd,"INEND") + #pragma map(inflateSync,"INSY") + #pragma map(inflateSetDictionary,"INSEDI") + #pragma map(compressBound,"CMBND") + #pragma map(inflate_table,"INTABL") + #pragma map(inflate_fast,"INFA") + #pragma map(inflate_copyright,"INCOPY") +#endif + +#endif /* ZCONF_H */ diff --git a/src/inc/zlib/zlib.h b/src/inc/zlib/zlib.h new file mode 100644 index 00000000..3e0c7672 --- /dev/null +++ b/src/inc/zlib/zlib.h @@ -0,0 +1,1768 @@ +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.8, April 28th, 2013 + + Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 + (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). +*/ + +#ifndef ZLIB_H +#define ZLIB_H + +#include "zconf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ZLIB_VERSION "1.2.8" +#define ZLIB_VERNUM 0x1280 +#define ZLIB_VER_MAJOR 1 +#define ZLIB_VER_MINOR 2 +#define ZLIB_VER_REVISION 8 +#define ZLIB_VER_SUBREVISION 0 + +/* + The 'zlib' compression library provides in-memory compression and + decompression functions, including integrity checks of the uncompressed data. + This version of the library supports only one compression method (deflation) + but other algorithms will be added later and will have the same stream + interface. + + Compression can be done in a single step if the buffers are large enough, + or can be done by repeated calls of the compression function. In the latter + case, the application must provide more input and/or consume the output + (providing more output space) before each call. + + The compressed data format used by default by the in-memory functions is + the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped + around a deflate stream, which is itself documented in RFC 1951. + + The library also supports reading and writing files in gzip (.gz) format + with an interface similar to that of stdio using the functions that start + with "gz". The gzip format is different from the zlib format. gzip is a + gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. + + This library can optionally read and write gzip streams in memory as well. + + The zlib format was designed to be compact and fast for use in memory + and on communications channels. The gzip format was designed for single- + file compression on file systems, has a larger header than zlib to maintain + directory information, and uses a different, slower check method than zlib. + + The library does not install any signal handler. The decoder checks + the consistency of the compressed data, so the library should never crash + even in case of corrupted input. +*/ + +typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); +typedef void (*free_func) OF((voidpf opaque, voidpf address)); + +struct internal_state; + +typedef struct z_stream_s { + z_const Bytef *next_in; /* next input byte */ + uInt avail_in; /* number of bytes available at next_in */ + uLong total_in; /* total number of input bytes read so far */ + + Bytef *next_out; /* next output byte should be put there */ + uInt avail_out; /* remaining free space at next_out */ + uLong total_out; /* total number of bytes output so far */ + + z_const char *msg; /* last error message, NULL if no error */ + struct internal_state FAR *state; /* not visible by applications */ + + alloc_func zalloc; /* used to allocate the internal state */ + free_func zfree; /* used to free the internal state */ + voidpf opaque; /* private data object passed to zalloc and zfree */ + + int data_type; /* best guess about the data type: binary or text */ + uLong adler; /* adler32 value of the uncompressed data */ + uLong reserved; /* reserved for future use */ +} z_stream; + +typedef z_stream FAR *z_streamp; + +/* + gzip header information passed to and from zlib routines. See RFC 1952 + for more details on the meanings of these fields. +*/ +typedef struct gz_header_s { + int text; /* true if compressed data believed to be text */ + uLong time; /* modification time */ + int xflags; /* extra flags (not used when writing a gzip file) */ + int os; /* operating system */ + Bytef *extra; /* pointer to extra field or Z_NULL if none */ + uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ + uInt extra_max; /* space at extra (only when reading header) */ + Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ + uInt name_max; /* space at name (only when reading header) */ + Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ + uInt comm_max; /* space at comment (only when reading header) */ + int hcrc; /* true if there was or will be a header crc */ + int done; /* true when done reading gzip header (not used + when writing a gzip file) */ +} gz_header; + +typedef gz_header FAR *gz_headerp; + +/* + The application must update next_in and avail_in when avail_in has dropped + to zero. It must update next_out and avail_out when avail_out has dropped + to zero. The application must initialize zalloc, zfree and opaque before + calling the init function. All other fields are set by the compression + library and must not be updated by the application. + + The opaque value provided by the application will be passed as the first + parameter for calls of zalloc and zfree. This can be useful for custom + memory management. The compression library attaches no meaning to the + opaque value. + + zalloc must return Z_NULL if there is not enough memory for the object. + If zlib is used in a multi-threaded application, zalloc and zfree must be + thread safe. + + On 16-bit systems, the functions zalloc and zfree must be able to allocate + exactly 65536 bytes, but will not be required to allocate more than this if + the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers + returned by zalloc for objects of exactly 65536 bytes *must* have their + offset normalized to zero. The default allocation function provided by this + library ensures this (see zutil.c). To reduce memory requirements and avoid + any allocation of 64K objects, at the expense of compression ratio, compile + the library with -DMAX_WBITS=14 (see zconf.h). + + The fields total_in and total_out can be used for statistics or progress + reports. After compression, total_in holds the total size of the + uncompressed data and may be saved for use in the decompressor (particularly + if the decompressor wants to decompress everything in a single step). +*/ + + /* constants */ + +#define Z_NO_FLUSH 0 +#define Z_PARTIAL_FLUSH 1 +#define Z_SYNC_FLUSH 2 +#define Z_FULL_FLUSH 3 +#define Z_FINISH 4 +#define Z_BLOCK 5 +#define Z_TREES 6 +/* Allowed flush values; see deflate() and inflate() below for details */ + +#define Z_OK 0 +#define Z_STREAM_END 1 +#define Z_NEED_DICT 2 +#define Z_ERRNO (-1) +#define Z_STREAM_ERROR (-2) +#define Z_DATA_ERROR (-3) +#define Z_MEM_ERROR (-4) +#define Z_BUF_ERROR (-5) +#define Z_VERSION_ERROR (-6) +/* Return codes for the compression/decompression functions. Negative values + * are errors, positive values are used for special but normal events. + */ + +#define Z_NO_COMPRESSION 0 +#define Z_BEST_SPEED 1 +#define Z_BEST_COMPRESSION 9 +#define Z_DEFAULT_COMPRESSION (-1) +/* compression levels */ + +#define Z_FILTERED 1 +#define Z_HUFFMAN_ONLY 2 +#define Z_RLE 3 +#define Z_FIXED 4 +#define Z_DEFAULT_STRATEGY 0 +/* compression strategy; see deflateInit2() below for details */ + +#define Z_BINARY 0 +#define Z_TEXT 1 +#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ +#define Z_UNKNOWN 2 +/* Possible values of the data_type field (though see inflate()) */ + +#define Z_DEFLATED 8 +/* The deflate compression method (the only one supported in this version) */ + +#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ + +#define zlib_version zlibVersion() +/* for compatibility with versions < 1.0.2 */ + + + /* basic functions */ + +ZEXTERN const char * ZEXPORT zlibVersion OF((void)); +/* The application can compare zlibVersion and ZLIB_VERSION for consistency. + If the first character differs, the library code actually used is not + compatible with the zlib.h header file used by the application. This check + is automatically made by deflateInit and inflateInit. + */ + +/* +ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); + + Initializes the internal stream state for compression. The fields + zalloc, zfree and opaque must be initialized before by the caller. If + zalloc and zfree are set to Z_NULL, deflateInit updates them to use default + allocation functions. + + The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: + 1 gives best speed, 9 gives best compression, 0 gives no compression at all + (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION + requests a default compromise between speed and compression (currently + equivalent to level 6). + + deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if level is not a valid compression level, or + Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible + with the version assumed by the caller (ZLIB_VERSION). msg is set to null + if there is no error message. deflateInit does not perform any compression: + this will be done by deflate(). +*/ + + +ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +/* + deflate compresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce + some output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. deflate performs one or both of the + following actions: + + - Compress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in and avail_in are updated and + processing will resume at this point for the next call of deflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. This action is forced if the parameter flush is non zero. + Forcing flush frequently degrades the compression ratio, so this parameter + should be set only when necessary (in interactive applications). Some + output may be provided even if flush is not set. + + Before the call of deflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming more + output, and updating avail_in or avail_out accordingly; avail_out should + never be zero before the call. The application can consume the compressed + output when it wants, for example when the output buffer is full (avail_out + == 0), or after each call of deflate(). If deflate returns Z_OK and with + zero avail_out, it must be called again after making room in the output + buffer because there might be more output pending. + + Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to + decide how much data to accumulate before producing output, in order to + maximize compression. + + If the parameter flush is set to Z_SYNC_FLUSH, all pending output is + flushed to the output buffer and the output is aligned on a byte boundary, so + that the decompressor can get all input data available so far. (In + particular avail_in is zero after the call if enough output space has been + provided before the call.) Flushing may degrade compression for some + compression algorithms and so it should be used only when necessary. This + completes the current deflate block and follows it with an empty stored block + that is three bits plus filler bits to the next byte, followed by four bytes + (00 00 ff ff). + + If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the + output buffer, but the output is not aligned to a byte boundary. All of the + input data so far will be available to the decompressor, as for Z_SYNC_FLUSH. + This completes the current deflate block and follows it with an empty fixed + codes block that is 10 bits long. This assures that enough bytes are output + in order for the decompressor to finish the block before the empty fixed code + block. + + If flush is set to Z_BLOCK, a deflate block is completed and emitted, as + for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to + seven bits of the current block are held to be written as the next byte after + the next deflate block is completed. In this case, the decompressor may not + be provided enough bits at this point in order to complete decompression of + the data provided so far to the compressor. It may need to wait for the next + block to be emitted. This is for advanced applications that need to control + the emission of deflate blocks. + + If flush is set to Z_FULL_FLUSH, all output is flushed as with + Z_SYNC_FLUSH, and the compression state is reset so that decompression can + restart from this point if previous compressed data has been damaged or if + random access is desired. Using Z_FULL_FLUSH too often can seriously degrade + compression. + + If deflate returns with avail_out == 0, this function must be called again + with the same value of the flush parameter and more output space (updated + avail_out), until the flush is complete (deflate returns with non-zero + avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that + avail_out is greater than six to avoid repeated flush markers due to + avail_out == 0 on return. + + If the parameter flush is set to Z_FINISH, pending input is processed, + pending output is flushed and deflate returns with Z_STREAM_END if there was + enough output space; if deflate returns with Z_OK, this function must be + called again with Z_FINISH and more output space (updated avail_out) but no + more input data, until it returns with Z_STREAM_END or an error. After + deflate has returned Z_STREAM_END, the only possible operations on the stream + are deflateReset or deflateEnd. + + Z_FINISH can be used immediately after deflateInit if all the compression + is to be done in a single step. In this case, avail_out must be at least the + value returned by deflateBound (see below). Then deflate is guaranteed to + return Z_STREAM_END. If not enough output space is provided, deflate will + not return Z_STREAM_END, and it must be called again as described above. + + deflate() sets strm->adler to the adler32 checksum of all input read + so far (that is, total_in bytes). + + deflate() may update strm->data_type if it can make a good guess about + the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered + binary. This field is only for information purposes and does not affect the + compression algorithm in any manner. + + deflate() returns Z_OK if some progress has been made (more input + processed or more output produced), Z_STREAM_END if all input has been + consumed and all output has been produced (only when flush is set to + Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example + if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible + (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not + fatal, and deflate() can be called again with more input and more output + space to continue compressing. +*/ + + +ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any pending + output. + + deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the + stream state was inconsistent, Z_DATA_ERROR if the stream was freed + prematurely (some input or output was discarded). In the error case, msg + may be set but then points to a static string (which must not be + deallocated). +*/ + + +/* +ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); + + Initializes the internal stream state for decompression. The fields + next_in, avail_in, zalloc, zfree and opaque must be initialized before by + the caller. If next_in is not Z_NULL and avail_in is large enough (the + exact value depends on the compression method), inflateInit determines the + compression method from the zlib header and allocates all data structures + accordingly; otherwise the allocation will be deferred to the first call of + inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to + use default allocation functions. + + inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_VERSION_ERROR if the zlib library version is incompatible with the + version assumed by the caller, or Z_STREAM_ERROR if the parameters are + invalid, such as a null pointer to the structure. msg is set to null if + there is no error message. inflateInit does not perform any decompression + apart from possibly reading the zlib header if present: actual decompression + will be done by inflate(). (So next_in and avail_in may be modified, but + next_out and avail_out are unused and unchanged.) The current implementation + of inflateInit() does not process any header information -- that is deferred + until inflate() is called. +*/ + + +ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); +/* + inflate decompresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce + some output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. inflate performs one or both of the + following actions: + + - Decompress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in is updated and processing will + resume at this point for the next call of inflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. inflate() provides as much output as possible, until there is + no more input data or no more space in the output buffer (see below about + the flush parameter). + + Before the call of inflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming more + output, and updating the next_* and avail_* values accordingly. The + application can consume the uncompressed output when it wants, for example + when the output buffer is full (avail_out == 0), or after each call of + inflate(). If inflate returns Z_OK and with zero avail_out, it must be + called again after making room in the output buffer because there might be + more output pending. + + The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, + Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much + output as possible to the output buffer. Z_BLOCK requests that inflate() + stop if and when it gets to the next deflate block boundary. When decoding + the zlib or gzip format, this will cause inflate() to return immediately + after the header and before the first block. When doing a raw inflate, + inflate() will go ahead and process the first block, and will return when it + gets to the end of that block, or when it runs out of data. + + The Z_BLOCK option assists in appending to or combining deflate streams. + Also to assist in this, on return inflate() will set strm->data_type to the + number of unused bits in the last byte taken from strm->next_in, plus 64 if + inflate() is currently decoding the last block in the deflate stream, plus + 128 if inflate() returned immediately after decoding an end-of-block code or + decoding the complete header up to just before the first byte of the deflate + stream. The end-of-block will not be indicated until all of the uncompressed + data from that block has been written to strm->next_out. The number of + unused bits may in general be greater than seven, except when bit 7 of + data_type is set, in which case the number of unused bits will be less than + eight. data_type is set as noted here every time inflate() returns for all + flush options, and so can be used to determine the amount of currently + consumed input in bits. + + The Z_TREES option behaves as Z_BLOCK does, but it also returns when the + end of each deflate block header is reached, before any actual data in that + block is decoded. This allows the caller to determine the length of the + deflate block header for later use in random access within a deflate block. + 256 is added to the value of strm->data_type when inflate() returns + immediately after reaching the end of the deflate block header. + + inflate() should normally be called until it returns Z_STREAM_END or an + error. However if all decompression is to be performed in a single step (a + single call of inflate), the parameter flush should be set to Z_FINISH. In + this case all pending input is processed and all pending output is flushed; + avail_out must be large enough to hold all of the uncompressed data for the + operation to complete. (The size of the uncompressed data may have been + saved by the compressor for this purpose.) The use of Z_FINISH is not + required to perform an inflation in one step. However it may be used to + inform inflate that a faster approach can be used for the single inflate() + call. Z_FINISH also informs inflate to not maintain a sliding window if the + stream completes, which reduces inflate's memory footprint. If the stream + does not complete, either because not all of the stream is provided or not + enough output space is provided, then a sliding window will be allocated and + inflate() can be called again to continue the operation as if Z_NO_FLUSH had + been used. + + In this implementation, inflate() always flushes as much output as + possible to the output buffer, and always uses the faster approach on the + first call. So the effects of the flush parameter in this implementation are + on the return value of inflate() as noted below, when inflate() returns early + when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of + memory for a sliding window when Z_FINISH is used. + + If a preset dictionary is needed after this call (see inflateSetDictionary + below), inflate sets strm->adler to the Adler-32 checksum of the dictionary + chosen by the compressor and returns Z_NEED_DICT; otherwise it sets + strm->adler to the Adler-32 checksum of all output produced so far (that is, + total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described + below. At the end of the stream, inflate() checks that its computed adler32 + checksum is equal to that saved by the compressor and returns Z_STREAM_END + only if the checksum is correct. + + inflate() can decompress and check either zlib-wrapped or gzip-wrapped + deflate data. The header type is detected automatically, if requested when + initializing with inflateInit2(). Any information contained in the gzip + header is not retained, so applications that need that information should + instead use raw inflate, see inflateInit2() below, or inflateBack() and + perform their own processing of the gzip header and trailer. When processing + gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output + producted so far. The CRC-32 is checked against the gzip trailer. + + inflate() returns Z_OK if some progress has been made (more input processed + or more output produced), Z_STREAM_END if the end of the compressed data has + been reached and all uncompressed output has been produced, Z_NEED_DICT if a + preset dictionary is needed at this point, Z_DATA_ERROR if the input data was + corrupted (input stream not conforming to the zlib format or incorrect check + value), Z_STREAM_ERROR if the stream structure was inconsistent (for example + next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory, + Z_BUF_ERROR if no progress is possible or if there was not enough room in the + output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and + inflate() can be called again with more input and more output space to + continue decompressing. If Z_DATA_ERROR is returned, the application may + then call inflateSync() to look for a good compression block if a partial + recovery of the data is desired. +*/ + + +ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any pending + output. + + inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state + was inconsistent. In the error case, msg may be set but then points to a + static string (which must not be deallocated). +*/ + + + /* Advanced functions */ + +/* + The following functions are needed only in some special applications. +*/ + +/* +ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, + int level, + int method, + int windowBits, + int memLevel, + int strategy)); + + This is another version of deflateInit with more compression options. The + fields next_in, zalloc, zfree and opaque must be initialized before by the + caller. + + The method parameter is the compression method. It must be Z_DEFLATED in + this version of the library. + + The windowBits parameter is the base two logarithm of the window size + (the size of the history buffer). It should be in the range 8..15 for this + version of the library. Larger values of this parameter result in better + compression at the expense of memory usage. The default value is 15 if + deflateInit is used instead. + + windowBits can also be -8..-15 for raw deflate. In this case, -windowBits + determines the window size. deflate() will then generate raw deflate data + with no zlib header or trailer, and will not compute an adler32 check value. + + windowBits can also be greater than 15 for optional gzip encoding. Add + 16 to windowBits to write a simple gzip header and trailer around the + compressed data instead of a zlib wrapper. The gzip header will have no + file name, no extra data, no comment, no modification time (set to zero), no + header crc, and the operating system will be set to 255 (unknown). If a + gzip stream is being written, strm->adler is a crc32 instead of an adler32. + + The memLevel parameter specifies how much memory should be allocated + for the internal compression state. memLevel=1 uses minimum memory but is + slow and reduces compression ratio; memLevel=9 uses maximum memory for + optimal speed. The default value is 8. See zconf.h for total memory usage + as a function of windowBits and memLevel. + + The strategy parameter is used to tune the compression algorithm. Use the + value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a + filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no + string match), or Z_RLE to limit match distances to one (run-length + encoding). Filtered data consists mostly of small values with a somewhat + random distribution. In this case, the compression algorithm is tuned to + compress them better. The effect of Z_FILTERED is to force more Huffman + coding and less string matching; it is somewhat intermediate between + Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as + fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The + strategy parameter only affects the compression ratio but not the + correctness of the compressed output even if it is not set appropriately. + Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler + decoder for special applications. + + deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid + method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is + incompatible with the version assumed by the caller (ZLIB_VERSION). msg is + set to null if there is no error message. deflateInit2 does not perform any + compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the compression dictionary from the given byte sequence + without producing any compressed output. When using the zlib format, this + function must be called immediately after deflateInit, deflateInit2 or + deflateReset, and before any call of deflate. When doing raw deflate, this + function must be called either before any call of deflate, or immediately + after the completion of a deflate block, i.e. after all input has been + consumed and all output has been delivered when using any of the flush + options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH. The + compressor and decompressor must use exactly the same dictionary (see + inflateSetDictionary). + + The dictionary should consist of strings (byte sequences) that are likely + to be encountered later in the data to be compressed, with the most commonly + used strings preferably put towards the end of the dictionary. Using a + dictionary is most useful when the data to be compressed is short and can be + predicted with good accuracy; the data can then be compressed better than + with the default empty dictionary. + + Depending on the size of the compression data structures selected by + deflateInit or deflateInit2, a part of the dictionary may in effect be + discarded, for example if the dictionary is larger than the window size + provided in deflateInit or deflateInit2. Thus the strings most likely to be + useful should be put at the end of the dictionary, not at the front. In + addition, the current implementation of deflate will use at most the window + size minus 262 bytes of the provided dictionary. + + Upon return of this function, strm->adler is set to the adler32 value + of the dictionary; the decompressor may later use this value to determine + which dictionary has been used by the compressor. (The adler32 value + applies to the whole dictionary even if only a subset of the dictionary is + actually used by the compressor.) If a raw deflate was requested, then the + adler32 value is not computed and strm->adler is not set. + + deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a + parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is + inconsistent (for example if deflate has already been called for this stream + or if not at a block boundary for raw deflate). deflateSetDictionary does + not perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when several compression strategies will be + tried, for example when there are several ways of pre-processing the input + data with a filter. The streams that will be discarded should then be freed + by calling deflateEnd. Note that deflateCopy duplicates the internal + compression state which can be quite large, so this strategy is slow and can + consume lots of memory. + + deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being Z_NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); +/* + This function is equivalent to deflateEnd followed by deflateInit, + but does not free and reallocate all the internal compression state. The + stream will keep the same compression level and any other attributes that + may have been set by deflateInit2. + + deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being Z_NULL). +*/ + +ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, + int level, + int strategy)); +/* + Dynamically update the compression level and compression strategy. The + interpretation of level and strategy is as in deflateInit2. This can be + used to switch between compression and straight copy of the input data, or + to switch to a different kind of input data requiring a different strategy. + If the compression level is changed, the input available so far is + compressed with the old level (and may be flushed); the new level will take + effect only at the next call of deflate(). + + Before the call of deflateParams, the stream state must be set as for + a call of deflate(), since the currently available input may have to be + compressed and flushed. In particular, strm->avail_out must be non-zero. + + deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source + stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if + strm->avail_out was zero. +*/ + +ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, + int good_length, + int max_lazy, + int nice_length, + int max_chain)); +/* + Fine tune deflate's internal compression parameters. This should only be + used by someone who understands the algorithm used by zlib's deflate for + searching for the best matching string, and even then only by the most + fanatic optimizer trying to squeeze out the last compressed bit for their + specific input data. Read the deflate.c source code for the meaning of the + max_lazy, good_length, nice_length, and max_chain parameters. + + deflateTune() can be called after deflateInit() or deflateInit2(), and + returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. + */ + +ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, + uLong sourceLen)); +/* + deflateBound() returns an upper bound on the compressed size after + deflation of sourceLen bytes. It must be called after deflateInit() or + deflateInit2(), and after deflateSetHeader(), if used. This would be used + to allocate an output buffer for deflation in a single pass, and so would be + called before deflate(). If that first deflate() call is provided the + sourceLen input bytes, an output buffer allocated to the size returned by + deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed + to return Z_STREAM_END. Note that it is possible for the compressed size to + be larger than the value returned by deflateBound() if flush options other + than Z_FINISH or Z_NO_FLUSH are used. +*/ + +ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, + unsigned *pending, + int *bits)); +/* + deflatePending() returns the number of bytes and bits of output that have + been generated, but not yet provided in the available output. The bytes not + provided would be due to the available output space having being consumed. + The number of bits of output not provided are between 0 and 7, where they + await more bits to join them in order to fill out a full byte. If pending + or bits are Z_NULL, then those values are not set. + + deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. + */ + +ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + deflatePrime() inserts bits in the deflate output stream. The intent + is that this function is used to start off the deflate output with the bits + leftover from a previous deflate stream when appending to it. As such, this + function can only be used for raw deflate, and must be used before the first + deflate() call after a deflateInit2() or deflateReset(). bits must be less + than or equal to 16, and that many of the least significant bits of value + will be inserted in the output. + + deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough + room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the + source stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, + gz_headerp head)); +/* + deflateSetHeader() provides gzip header information for when a gzip + stream is requested by deflateInit2(). deflateSetHeader() may be called + after deflateInit2() or deflateReset() and before the first call of + deflate(). The text, time, os, extra field, name, and comment information + in the provided gz_header structure are written to the gzip header (xflag is + ignored -- the extra flags are set according to the compression level). The + caller must assure that, if not Z_NULL, name and comment are terminated with + a zero byte, and that if extra is not Z_NULL, that extra_len bytes are + available there. If hcrc is true, a gzip header crc is included. Note that + the current versions of the command-line version of gzip (up through version + 1.3.x) do not support header crc's, and will report that it is a "multi-part + gzip file" and give up. + + If deflateSetHeader is not used, the default gzip header has text false, + the time set to zero, and os set to 255, with no extra, name, or comment + fields. The gzip header is returned to the default state by deflateReset(). + + deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +/* +ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, + int windowBits)); + + This is another version of inflateInit with an extra parameter. The + fields next_in, avail_in, zalloc, zfree and opaque must be initialized + before by the caller. + + The windowBits parameter is the base two logarithm of the maximum window + size (the size of the history buffer). It should be in the range 8..15 for + this version of the library. The default value is 15 if inflateInit is used + instead. windowBits must be greater than or equal to the windowBits value + provided to deflateInit2() while compressing, or it must be equal to 15 if + deflateInit2() was not used. If a compressed stream with a larger window + size is given as input, inflate() will return with the error code + Z_DATA_ERROR instead of trying to allocate a larger window. + + windowBits can also be zero to request that inflate use the window size in + the zlib header of the compressed stream. + + windowBits can also be -8..-15 for raw inflate. In this case, -windowBits + determines the window size. inflate() will then process raw deflate data, + not looking for a zlib or gzip header, not generating a check value, and not + looking for any check values for comparison at the end of the stream. This + is for use with other formats that use the deflate compressed data format + such as zip. Those formats provide their own check values. If a custom + format is developed using the raw deflate format for compressed data, it is + recommended that a check value such as an adler32 or a crc32 be applied to + the uncompressed data as is done in the zlib, gzip, and zip formats. For + most applications, the zlib format should be used as is. Note that comments + above on the use in deflateInit2() applies to the magnitude of windowBits. + + windowBits can also be greater than 15 for optional gzip decoding. Add + 32 to windowBits to enable zlib and gzip decoding with automatic header + detection, or add 16 to decode only the gzip format (the zlib format will + return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a + crc32 instead of an adler32. + + inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_VERSION_ERROR if the zlib library version is incompatible with the + version assumed by the caller, or Z_STREAM_ERROR if the parameters are + invalid, such as a null pointer to the structure. msg is set to null if + there is no error message. inflateInit2 does not perform any decompression + apart from possibly reading the zlib header if present: actual decompression + will be done by inflate(). (So next_in and avail_in may be modified, but + next_out and avail_out are unused and unchanged.) The current implementation + of inflateInit2() does not process any header information -- that is + deferred until inflate() is called. +*/ + +ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the decompression dictionary from the given uncompressed byte + sequence. This function must be called immediately after a call of inflate, + if that call returned Z_NEED_DICT. The dictionary chosen by the compressor + can be determined from the adler32 value returned by that call of inflate. + The compressor and decompressor must use exactly the same dictionary (see + deflateSetDictionary). For raw inflate, this function can be called at any + time to set the dictionary. If the provided dictionary is smaller than the + window and there is already data in the window, then the provided dictionary + will amend what's there. The application must insure that the dictionary + that was used for compression is provided. + + inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a + parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is + inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the + expected one (incorrect adler32 value). inflateSetDictionary does not + perform any decompression: this will be done by subsequent calls of + inflate(). +*/ + +ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, + Bytef *dictionary, + uInt *dictLength)); +/* + Returns the sliding dictionary being maintained by inflate. dictLength is + set to the number of bytes in the dictionary, and that many bytes are copied + to dictionary. dictionary must have enough space, where 32768 bytes is + always enough. If inflateGetDictionary() is called with dictionary equal to + Z_NULL, then only the dictionary length is returned, and nothing is copied. + Similary, if dictLength is Z_NULL, then it is not set. + + inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the + stream state is inconsistent. +*/ + +ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); +/* + Skips invalid compressed data until a possible full flush point (see above + for the description of deflate with Z_FULL_FLUSH) can be found, or until all + available input is skipped. No output is provided. + + inflateSync searches for a 00 00 FF FF pattern in the compressed data. + All full flush points have this pattern, but not all occurrences of this + pattern are full flush points. + + inflateSync returns Z_OK if a possible full flush point has been found, + Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point + has been found, or Z_STREAM_ERROR if the stream structure was inconsistent. + In the success case, the application may save the current current value of + total_in which indicates where valid compressed data was found. In the + error case, the application may repeatedly call inflateSync, providing more + input each time, until success or end of the input data. +*/ + +ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when randomly accessing a large stream. The + first pass through the stream can periodically record the inflate state, + allowing restarting inflate at those points when randomly accessing the + stream. + + inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being Z_NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); +/* + This function is equivalent to inflateEnd followed by inflateInit, + but does not free and reallocate all the internal decompression state. The + stream will keep attributes that may have been set by inflateInit2. + + inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being Z_NULL). +*/ + +ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, + int windowBits)); +/* + This function is the same as inflateReset, but it also permits changing + the wrap and window size requests. The windowBits parameter is interpreted + the same as it is for inflateInit2. + + inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being Z_NULL), or if + the windowBits parameter is invalid. +*/ + +ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + This function inserts bits in the inflate input stream. The intent is + that this function is used to start inflating at a bit position in the + middle of a byte. The provided bits will be used before any bytes are used + from next_in. This function should only be used with raw inflate, and + should be used before the first inflate() call after inflateInit2() or + inflateReset(). bits must be less than or equal to 16, and that many of the + least significant bits of value will be inserted in the input. + + If bits is negative, then the input stream bit buffer is emptied. Then + inflatePrime() can be called again to put bits in the buffer. This is used + to clear out bits leftover after feeding inflate a block description prior + to feeding inflate codes. + + inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); +/* + This function returns two values, one in the lower 16 bits of the return + value, and the other in the remaining upper bits, obtained by shifting the + return value down 16 bits. If the upper value is -1 and the lower value is + zero, then inflate() is currently decoding information outside of a block. + If the upper value is -1 and the lower value is non-zero, then inflate is in + the middle of a stored block, with the lower value equaling the number of + bytes from the input remaining to copy. If the upper value is not -1, then + it is the number of bits back from the current bit position in the input of + the code (literal or length/distance pair) currently being processed. In + that case the lower value is the number of bytes already emitted for that + code. + + A code is being processed if inflate is waiting for more input to complete + decoding of the code, or if it has completed decoding but is waiting for + more output space to write the literal or match data. + + inflateMark() is used to mark locations in the input data for random + access, which may be at bit positions, and to note those cases where the + output of a code may span boundaries of random access blocks. The current + location in the input stream can be determined from avail_in and data_type + as noted in the description for the Z_BLOCK flush parameter for inflate. + + inflateMark returns the value noted above or -1 << 16 if the provided + source stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, + gz_headerp head)); +/* + inflateGetHeader() requests that gzip header information be stored in the + provided gz_header structure. inflateGetHeader() may be called after + inflateInit2() or inflateReset(), and before the first call of inflate(). + As inflate() processes the gzip stream, head->done is zero until the header + is completed, at which time head->done is set to one. If a zlib stream is + being decoded, then head->done is set to -1 to indicate that there will be + no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be + used to force inflate() to return immediately after header processing is + complete and before any actual data is decompressed. + + The text, time, xflags, and os fields are filled in with the gzip header + contents. hcrc is set to true if there is a header CRC. (The header CRC + was valid if done is set to one.) If extra is not Z_NULL, then extra_max + contains the maximum number of bytes to write to extra. Once done is true, + extra_len contains the actual extra field length, and extra contains the + extra field, or that field truncated if extra_max is less than extra_len. + If name is not Z_NULL, then up to name_max characters are written there, + terminated with a zero unless the length is greater than name_max. If + comment is not Z_NULL, then up to comm_max characters are written there, + terminated with a zero unless the length is greater than comm_max. When any + of extra, name, or comment are not Z_NULL and the respective field is not + present in the header, then that field is set to Z_NULL to signal its + absence. This allows the use of deflateSetHeader() with the returned + structure to duplicate the header. However if those fields are set to + allocated memory, then the application will need to save those pointers + elsewhere so that they can be eventually freed. + + If inflateGetHeader is not used, then the header information is simply + discarded. The header is always checked for validity, including the header + CRC if present. inflateReset() will reset the process to discard the header + information. The application would need to call inflateGetHeader() again to + retrieve the header from the next gzip stream. + + inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +/* +ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, + unsigned char FAR *window)); + + Initialize the internal stream state for decompression using inflateBack() + calls. The fields zalloc, zfree and opaque in strm must be initialized + before the call. If zalloc and zfree are Z_NULL, then the default library- + derived memory allocation routines are used. windowBits is the base two + logarithm of the window size, in the range 8..15. window is a caller + supplied buffer of that size. Except for special applications where it is + assured that deflate was used with small window sizes, windowBits must be 15 + and a 32K byte window must be supplied to be able to decompress general + deflate streams. + + See inflateBack() for the usage of these routines. + + inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of + the parameters are invalid, Z_MEM_ERROR if the internal state could not be + allocated, or Z_VERSION_ERROR if the version of the library does not match + the version of the header file. +*/ + +typedef unsigned (*in_func) OF((void FAR *, + z_const unsigned char FAR * FAR *)); +typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); + +ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, + in_func in, void FAR *in_desc, + out_func out, void FAR *out_desc)); +/* + inflateBack() does a raw inflate with a single call using a call-back + interface for input and output. This is potentially more efficient than + inflate() for file i/o applications, in that it avoids copying between the + output and the sliding window by simply making the window itself the output + buffer. inflate() can be faster on modern CPUs when used with large + buffers. inflateBack() trusts the application to not change the output + buffer passed by the output function, at least until inflateBack() returns. + + inflateBackInit() must be called first to allocate the internal state + and to initialize the state with the user-provided window buffer. + inflateBack() may then be used multiple times to inflate a complete, raw + deflate stream with each call. inflateBackEnd() is then called to free the + allocated state. + + A raw deflate stream is one with no zlib or gzip header or trailer. + This routine would normally be used in a utility that reads zip or gzip + files and writes out uncompressed files. The utility would decode the + header and process the trailer on its own, hence this routine expects only + the raw deflate stream to decompress. This is different from the normal + behavior of inflate(), which expects either a zlib or gzip header and + trailer around the deflate stream. + + inflateBack() uses two subroutines supplied by the caller that are then + called by inflateBack() for input and output. inflateBack() calls those + routines until it reads a complete deflate stream and writes out all of the + uncompressed data, or until it encounters an error. The function's + parameters and return types are defined above in the in_func and out_func + typedefs. inflateBack() will call in(in_desc, &buf) which should return the + number of bytes of provided input, and a pointer to that input in buf. If + there is no input available, in() must return zero--buf is ignored in that + case--and inflateBack() will return a buffer error. inflateBack() will call + out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() + should return zero on success, or non-zero on failure. If out() returns + non-zero, inflateBack() will return with an error. Neither in() nor out() + are permitted to change the contents of the window provided to + inflateBackInit(), which is also the buffer that out() uses to write from. + The length written by out() will be at most the window size. Any non-zero + amount of input may be provided by in(). + + For convenience, inflateBack() can be provided input on the first call by + setting strm->next_in and strm->avail_in. If that input is exhausted, then + in() will be called. Therefore strm->next_in must be initialized before + calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called + immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in + must also be initialized, and then if strm->avail_in is not zero, input will + initially be taken from strm->next_in[0 .. strm->avail_in - 1]. + + The in_desc and out_desc parameters of inflateBack() is passed as the + first parameter of in() and out() respectively when they are called. These + descriptors can be optionally used to pass any information that the caller- + supplied in() and out() functions need to do their job. + + On return, inflateBack() will set strm->next_in and strm->avail_in to + pass back any unused input that was provided by the last in() call. The + return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR + if in() or out() returned an error, Z_DATA_ERROR if there was a format error + in the deflate stream (in which case strm->msg is set to indicate the nature + of the error), or Z_STREAM_ERROR if the stream was not properly initialized. + In the case of Z_BUF_ERROR, an input or output error can be distinguished + using strm->next_in which will be Z_NULL only if in() returned an error. If + strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning + non-zero. (in() will always be called before out(), so strm->next_in is + assured to be defined if out() returns non-zero.) Note that inflateBack() + cannot return Z_OK. +*/ + +ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); +/* + All memory allocated by inflateBackInit() is freed. + + inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream + state was inconsistent. +*/ + +ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); +/* Return flags indicating compile-time options. + + Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: + 1.0: size of uInt + 3.2: size of uLong + 5.4: size of voidpf (pointer) + 7.6: size of z_off_t + + Compiler, assembler, and debug options: + 8: DEBUG + 9: ASMV or ASMINF -- use ASM code + 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention + 11: 0 (reserved) + + One-time table building (smaller code, but not thread-safe if true): + 12: BUILDFIXED -- build static block decoding tables when needed + 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed + 14,15: 0 (reserved) + + Library content (indicates missing functionality): + 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking + deflate code when not needed) + 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect + and decode gzip streams (to avoid linking crc code) + 18-19: 0 (reserved) + + Operation variations (changes in library functionality): + 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate + 21: FASTEST -- deflate algorithm with only one, lowest compression level + 22,23: 0 (reserved) + + The sprintf variant used by gzprintf (zero is best): + 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format + 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! + 26: 0 = returns value, 1 = void -- 1 means inferred string length returned + + Remainder: + 27-31: 0 (reserved) + */ + +#ifndef Z_SOLO + + /* utility functions */ + +/* + The following utility functions are implemented on top of the basic + stream-oriented functions. To simplify the interface, some default options + are assumed (compression level and memory usage, standard memory allocation + functions). The source code of these utility functions can be modified if + you need special options. +*/ + +ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Compresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total size + of the destination buffer, which must be at least the value returned by + compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + + compress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer. +*/ + +ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int level)); +/* + Compresses the source buffer into the destination buffer. The level + parameter has the same meaning as in deflateInit. sourceLen is the byte + length of the source buffer. Upon entry, destLen is the total size of the + destination buffer, which must be at least the value returned by + compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + + compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_BUF_ERROR if there was not enough room in the output buffer, + Z_STREAM_ERROR if the level parameter is invalid. +*/ + +ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); +/* + compressBound() returns an upper bound on the compressed size after + compress() or compress2() on sourceLen bytes. It would be used before a + compress() or compress2() call to allocate the destination buffer. +*/ + +ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Decompresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total size + of the destination buffer, which must be large enough to hold the entire + uncompressed data. (The size of the uncompressed data must have been saved + previously by the compressor and transmitted to the decompressor by some + mechanism outside the scope of this compression library.) Upon exit, destLen + is the actual size of the uncompressed buffer. + + uncompress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. In + the case where there is not enough room, uncompress() will fill the output + buffer with the uncompressed data up to that point. +*/ + + /* gzip file access functions */ + +/* + This library supports reading and writing files in gzip (.gz) format with + an interface similar to that of stdio, using the functions that start with + "gz". The gzip format is different from the zlib format. gzip is a gzip + wrapper, documented in RFC 1952, wrapped around a deflate stream. +*/ + +typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ + +/* +ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); + + Opens a gzip (.gz) file for reading or writing. The mode parameter is as + in fopen ("rb" or "wb") but can also include a compression level ("wb9") or + a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only + compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' + for fixed code compression as in "wb9F". (See the description of + deflateInit2 for more information about the strategy parameter.) 'T' will + request transparent writing or appending with no compression and not using + the gzip format. + + "a" can be used instead of "w" to request that the gzip stream that will + be written be appended to the file. "+" will result in an error, since + reading and writing to the same gzip file is not supported. The addition of + "x" when writing will create the file exclusively, which fails if the file + already exists. On systems that support it, the addition of "e" when + reading or writing will set the flag to close the file on an execve() call. + + These functions, as well as gzip, will read and decode a sequence of gzip + streams in a file. The append function of gzopen() can be used to create + such a file. (Also see gzflush() for another way to do this.) When + appending, gzopen does not test whether the file begins with a gzip stream, + nor does it look for the end of the gzip streams to begin appending. gzopen + will simply append a gzip stream to the existing file. + + gzopen can be used to read a file which is not in gzip format; in this + case gzread will directly read from the file without decompression. When + reading, this will be detected automatically by looking for the magic two- + byte gzip header. + + gzopen returns NULL if the file could not be opened, if there was + insufficient memory to allocate the gzFile state, or if an invalid mode was + specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). + errno can be checked to determine if the reason gzopen failed was that the + file could not be opened. +*/ + +ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); +/* + gzdopen associates a gzFile with the file descriptor fd. File descriptors + are obtained from calls like open, dup, creat, pipe or fileno (if the file + has been previously opened with fopen). The mode parameter is as in gzopen. + + The next call of gzclose on the returned gzFile will also close the file + descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor + fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, + mode);. The duplicated descriptor should be saved to avoid a leak, since + gzdopen does not close fd if it fails. If you are using fileno() to get the + file descriptor from a FILE *, then you will have to use dup() to avoid + double-close()ing the file descriptor. Both gzclose() and fclose() will + close the associated file descriptor, so they need to have different file + descriptors. + + gzdopen returns NULL if there was insufficient memory to allocate the + gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not + provided, or '+' was provided), or if fd is -1. The file descriptor is not + used until the next gz* read, write, seek, or close operation, so gzdopen + will not detect if fd is invalid (unless fd is -1). +*/ + +ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); +/* + Set the internal buffer size used by this library's functions. The + default buffer size is 8192 bytes. This function must be called after + gzopen() or gzdopen(), and before any other calls that read or write the + file. The buffer memory allocation is always deferred to the first read or + write. Two buffers are allocated, either both of the specified size when + writing, or one of the specified size and the other twice that size when + reading. A larger buffer size of, for example, 64K or 128K bytes will + noticeably increase the speed of decompression (reading). + + The new buffer size also affects the maximum length for gzprintf(). + + gzbuffer() returns 0 on success, or -1 on failure, such as being called + too late. +*/ + +ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); +/* + Dynamically update the compression level or strategy. See the description + of deflateInit2 for the meaning of these parameters. + + gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not + opened for writing. +*/ + +ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); +/* + Reads the given number of uncompressed bytes from the compressed file. If + the input file is not in gzip format, gzread copies the given number of + bytes into the buffer directly from the file. + + After reaching the end of a gzip stream in the input, gzread will continue + to read, looking for another gzip stream. Any number of gzip streams may be + concatenated in the input file, and will all be decompressed by gzread(). + If something other than a gzip stream is encountered after a gzip stream, + that remaining trailing garbage is ignored (and no error is returned). + + gzread can be used to read a gzip file that is being concurrently written. + Upon reaching the end of the input, gzread will return with the available + data. If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then + gzclearerr can be used to clear the end of file indicator in order to permit + gzread to be tried again. Z_OK indicates that a gzip stream was completed + on the last gzread. Z_BUF_ERROR indicates that the input file ended in the + middle of a gzip stream. Note that gzread does not return -1 in the event + of an incomplete gzip stream. This error is deferred until gzclose(), which + will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip + stream. Alternatively, gzerror can be used before gzclose to detect this + case. + + gzread returns the number of uncompressed bytes actually read, less than + len for end of file, or -1 for error. +*/ + +ZEXTERN int ZEXPORT gzwrite OF((gzFile file, + voidpc buf, unsigned len)); +/* + Writes the given number of uncompressed bytes into the compressed file. + gzwrite returns the number of uncompressed bytes written or 0 in case of + error. +*/ + +ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); +/* + Converts, formats, and writes the arguments to the compressed file under + control of the format string, as in fprintf. gzprintf returns the number of + uncompressed bytes actually written, or 0 in case of error. The number of + uncompressed bytes written is limited to 8191, or one less than the buffer + size given to gzbuffer(). The caller should assure that this limit is not + exceeded. If it is exceeded, then gzprintf() will return an error (0) with + nothing written. In this case, there may also be a buffer overflow with + unpredictable consequences, which is possible only if zlib was compiled with + the insecure functions sprintf() or vsprintf() because the secure snprintf() + or vsnprintf() functions were not available. This can be determined using + zlibCompileFlags(). +*/ + +ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); +/* + Writes the given null-terminated string to the compressed file, excluding + the terminating null character. + + gzputs returns the number of characters written, or -1 in case of error. +*/ + +ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); +/* + Reads bytes from the compressed file until len-1 characters are read, or a + newline character is read and transferred to buf, or an end-of-file + condition is encountered. If any characters are read or if len == 1, the + string is terminated with a null character. If no characters are read due + to an end-of-file or len < 1, then the buffer is left untouched. + + gzgets returns buf which is a null-terminated string, or it returns NULL + for end-of-file or in case of error. If there was an error, the contents at + buf are indeterminate. +*/ + +ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); +/* + Writes c, converted to an unsigned char, into the compressed file. gzputc + returns the value that was written, or -1 in case of error. +*/ + +ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); +/* + Reads one byte from the compressed file. gzgetc returns this byte or -1 + in case of end of file or error. This is implemented as a macro for speed. + As such, it does not do all of the checking the other functions do. I.e. + it does not check to see if file is NULL, nor whether the structure file + points to has been clobbered or not. +*/ + +ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); +/* + Push one character back onto the stream to be read as the first character + on the next read. At least one character of push-back is allowed. + gzungetc() returns the character pushed, or -1 on failure. gzungetc() will + fail if c is -1, and may fail if a character has been pushed but not read + yet. If gzungetc is used immediately after gzopen or gzdopen, at least the + output buffer size of pushed characters is allowed. (See gzbuffer above.) + The pushed character will be discarded if the stream is repositioned with + gzseek() or gzrewind(). +*/ + +ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); +/* + Flushes all pending output into the compressed file. The parameter flush + is as in the deflate() function. The return value is the zlib error number + (see function gzerror below). gzflush is only permitted when writing. + + If the flush parameter is Z_FINISH, the remaining data is written and the + gzip stream is completed in the output. If gzwrite() is called again, a new + gzip stream will be started in the output. gzread() is able to read such + concatented gzip streams. + + gzflush should be called only when strictly necessary because it will + degrade compression if called too often. +*/ + +/* +ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, + z_off_t offset, int whence)); + + Sets the starting position for the next gzread or gzwrite on the given + compressed file. The offset represents a number of bytes in the + uncompressed data stream. The whence parameter is defined as in lseek(2); + the value SEEK_END is not supported. + + If the file is opened for reading, this function is emulated but can be + extremely slow. If the file is opened for writing, only forward seeks are + supported; gzseek then compresses a sequence of zeroes up to the new + starting position. + + gzseek returns the resulting offset location as measured in bytes from + the beginning of the uncompressed stream, or -1 in case of error, in + particular if the file is opened for writing and the new starting position + would be before the current position. +*/ + +ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); +/* + Rewinds the given file. This function is supported only for reading. + + gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) +*/ + +/* +ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); + + Returns the starting position for the next gzread or gzwrite on the given + compressed file. This position represents a number of bytes in the + uncompressed data stream, and is zero when starting, even if appending or + reading a gzip stream from the middle of a file using gzdopen(). + + gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) +*/ + +/* +ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); + + Returns the current offset in the file being read or written. This offset + includes the count of bytes that precede the gzip stream, for example when + appending or when using gzdopen() for reading. When reading, the offset + does not include as yet unused buffered input. This information can be used + for a progress indicator. On error, gzoffset() returns -1. +*/ + +ZEXTERN int ZEXPORT gzeof OF((gzFile file)); +/* + Returns true (1) if the end-of-file indicator has been set while reading, + false (0) otherwise. Note that the end-of-file indicator is set only if the + read tried to go past the end of the input, but came up short. Therefore, + just like feof(), gzeof() may return false even if there is no more data to + read, in the event that the last read request was for the exact number of + bytes remaining in the input file. This will happen if the input file size + is an exact multiple of the buffer size. + + If gzeof() returns true, then the read functions will return no more data, + unless the end-of-file indicator is reset by gzclearerr() and the input file + has grown since the previous end of file was detected. +*/ + +ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); +/* + Returns true (1) if file is being copied directly while reading, or false + (0) if file is a gzip stream being decompressed. + + If the input file is empty, gzdirect() will return true, since the input + does not contain a gzip stream. + + If gzdirect() is used immediately after gzopen() or gzdopen() it will + cause buffers to be allocated to allow reading the file to determine if it + is a gzip file. Therefore if gzbuffer() is used, it should be called before + gzdirect(). + + When writing, gzdirect() returns true (1) if transparent writing was + requested ("wT" for the gzopen() mode), or false (0) otherwise. (Note: + gzdirect() is not needed when writing. Transparent writing must be + explicitly requested, so the application already knows the answer. When + linking statically, using gzdirect() will include all of the zlib code for + gzip file reading and decompression, which may not be desired.) +*/ + +ZEXTERN int ZEXPORT gzclose OF((gzFile file)); +/* + Flushes all pending output if necessary, closes the compressed file and + deallocates the (de)compression state. Note that once file is closed, you + cannot call gzerror with file, since its structures have been deallocated. + gzclose must not be called more than once on the same file, just as free + must not be called more than once on the same allocation. + + gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a + file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the + last read ended in the middle of a gzip stream, or Z_OK on success. +*/ + +ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); +ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); +/* + Same as gzclose(), but gzclose_r() is only for use when reading, and + gzclose_w() is only for use when writing or appending. The advantage to + using these instead of gzclose() is that they avoid linking in zlib + compression or decompression code that is not used when only reading or only + writing respectively. If gzclose() is used, then both compression and + decompression code will be included the application when linking to a static + zlib library. +*/ + +ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); +/* + Returns the error message for the last error which occurred on the given + compressed file. errnum is set to zlib error number. If an error occurred + in the file system and not in the compression library, errnum is set to + Z_ERRNO and the application may consult errno to get the exact error code. + + The application must not modify the returned string. Future calls to + this function may invalidate the previously returned string. If file is + closed, then the string previously returned by gzerror will no longer be + available. + + gzerror() should be used to distinguish errors from end-of-file for those + functions above that do not distinguish those cases in their return values. +*/ + +ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); +/* + Clears the error and end-of-file flags for file. This is analogous to the + clearerr() function in stdio. This is useful for continuing to read a gzip + file that is being written concurrently. +*/ + +#endif /* !Z_SOLO */ + + /* checksum functions */ + +/* + These functions are not related to compression but are exported + anyway because they might be useful in applications using the compression + library. +*/ + +ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); +/* + Update a running Adler-32 checksum with the bytes buf[0..len-1] and + return the updated checksum. If buf is Z_NULL, this function returns the + required initial value for the checksum. + + An Adler-32 checksum is almost as reliable as a CRC32 but can be computed + much faster. + + Usage example: + + uLong adler = adler32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + adler = adler32(adler, buffer, length); + } + if (adler != original_adler) error(); +*/ + +/* +ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, + z_off_t len2)); + + Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 + and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for + each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of + seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. Note + that the z_off_t type (like off_t) is a signed integer. If len2 is + negative, the result has no meaning or utility. +*/ + +ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +/* + Update a running CRC-32 with the bytes buf[0..len-1] and return the + updated CRC-32. If buf is Z_NULL, this function returns the required + initial value for the crc. Pre- and post-conditioning (one's complement) is + performed within this function so it shouldn't be done by the application. + + Usage example: + + uLong crc = crc32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + crc = crc32(crc, buffer, length); + } + if (crc != original_crc) error(); +*/ + +/* +ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); + + Combine two CRC-32 check values into one. For two sequences of bytes, + seq1 and seq2 with lengths len1 and len2, CRC-32 check values were + calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 + check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and + len2. +*/ + + + /* various hacks, don't look :) */ + +/* deflateInit and inflateInit are macros to allow checking the zlib version + * and the compiler's view of z_stream: + */ +ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, + int windowBits, int memLevel, + int strategy, const char *version, + int stream_size)); +ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, + unsigned char FAR *window, + const char *version, + int stream_size)); +#define deflateInit(strm, level) \ + deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) +#define inflateInit(strm) \ + inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) +#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ + deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ + (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) +#define inflateInit2(strm, windowBits) \ + inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ + (int)sizeof(z_stream)) +#define inflateBackInit(strm, windowBits, window) \ + inflateBackInit_((strm), (windowBits), (window), \ + ZLIB_VERSION, (int)sizeof(z_stream)) + +#ifndef Z_SOLO + +/* gzgetc() macro and its supporting function and exposed data structure. Note + * that the real internal state is much larger than the exposed structure. + * This abbreviated structure exposes just enough for the gzgetc() macro. The + * user should not mess with these exposed elements, since their names or + * behavior could change in the future, perhaps even capriciously. They can + * only be used by the gzgetc() macro. You have been warned. + */ +struct gzFile_s { + unsigned have; + unsigned char *next; + z_off64_t pos; +}; +ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ +#ifdef Z_PREFIX_SET +# undef z_gzgetc +# define z_gzgetc(g) \ + ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g)) +#else +# define gzgetc(g) \ + ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g)) +#endif + +/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or + * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if + * both are true, the application gets the *64 functions, and the regular + * functions are changed to 64 bits) -- in case these are set on systems + * without large file support, _LFS64_LARGEFILE must also be true + */ +#ifdef Z_LARGE64 + ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); + ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); + ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); + ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); + ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); + ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); +#endif + +#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) +# ifdef Z_PREFIX_SET +# define z_gzopen z_gzopen64 +# define z_gzseek z_gzseek64 +# define z_gztell z_gztell64 +# define z_gzoffset z_gzoffset64 +# define z_adler32_combine z_adler32_combine64 +# define z_crc32_combine z_crc32_combine64 +# else +# define gzopen gzopen64 +# define gzseek gzseek64 +# define gztell gztell64 +# define gzoffset gzoffset64 +# define adler32_combine adler32_combine64 +# define crc32_combine crc32_combine64 +# endif +# ifndef Z_LARGE64 + ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); + ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); + ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); + ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); + ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); +# endif +#else + ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); + ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); + ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); + ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); + ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); +#endif + +#else /* Z_SOLO */ + + ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); + +#endif /* !Z_SOLO */ + +/* hack for buggy compilers */ +#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) + struct internal_state {int dummy;}; +#endif + +/* undocumented functions */ +ZEXTERN const char * ZEXPORT zError OF((int)); +ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); +ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); +ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); +ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); +ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); +#if defined(_WIN32) && !defined(Z_SOLO) +ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, + const char *mode)); +#endif +#if defined(STDC) || defined(Z_HAVE_STDARG_H) +# ifndef Z_SOLO +ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, + const char *format, + va_list va)); +# endif +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* ZLIB_H */ diff --git a/src/kat.cc b/src/kat.cc new file mode 100644 index 00000000..03efecca --- /dev/null +++ b/src/kat.cc @@ -0,0 +1,34 @@ +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "kat_args.hpp"; +#include "sect/sect.hpp"; + + +// Start point +int main(int argc, char *argv[]) +{ + // Parse args + KatArgs args(argc, argv); + + // Print command line args to stderr if requested + if (args.verbose) + { + args.print(); + } + + + // Pass remaining args to relevant child tool + if (strncmp(args.getMode(), "sect")) + { + sectStart(args.getModeArgC(), args.getModeArgV()); + } + else if (strncmp(args.getMode(), "comp")) + { + compStart(args.getModeArgC(), args.getModeArgV()); + } + + + return 0; +} diff --git a/src/kat_args.hpp b/src/kat_args.hpp new file mode 100644 index 00000000..3e8fde3f --- /dev/null +++ b/src/kat_args.hpp @@ -0,0 +1,156 @@ +#ifndef __SECT_ARGS_HPP__ +#define __SECT_ARGS_HPP__ + +#include +#include + +class KatArgs +{ +private: + string mode_arg; + int mode_argc; + char* mode_argv[]; + +public: + + + // Default constructor + SectArgs() : + mode_arg(NULL), mode_argc(0), mode_argv(NULL) + {} + + // Constructor that parses command line options + SectArgs(int argc, char* argv[]) : + mode_arg(NULL), mode_argc(0), mode_argv(NULL) + { + parse(argc, argv); + } + + string getMode() { + return mode_arg; + } + + int getModeArgC() { + return mode_argc; + } + + char** getModeArgV() { + return mode_argv; + } + + + + +#define kat_args_USAGE "Usage: kat " + const char * usage() const + { + return kat_args_USAGE; + } + + void error(const char *msg) + { + std::cerr << "Error: " << msg << "\n" << usage() + << "\nUse --help for more information" + << std::endl; + exit(1); + } + + +#define kat_args_HELP "The Kmer Analysis Toolkist (KAT) contains a number of tools that analyse jellyfish kmer hashes\n\n" \ + "First argument should be the tool you wish to use: " \ + "Options (default value in (), *required):\n" \ + " --usage Usage\n" \ + " --help This message\n" \ + " -V, --version Version" + + const char * help() const + { + return kat_args_HELP; + } + +#define kat_args_HIDDEN "Hidden options:" + const char * hidden() const + { + return kat_args_HIDDEN; + } + + void print_version(std::ostream &os = std::cout) const + { +#ifndef PACKAGE_VERSION +#define PACKAGE_VERSION "0.1.0" +#endif + os << PACKAGE_VERSION << "\n"; + } + + void parse(int argc, char *argv[]) + { + int c; + + static struct option long_options[] = + { + {"help", no_argument, 0, 'h'}, + {"usage", no_argument, 0, 'u'}, + {"version", no_argument, 0, 'V'}, + {0, 0, 0, 0} + }; + + static const char *short_options = "Vuh"; + + + if (argc == 0) { + std::cout << usage() << "\n\n" << help() << std::endl; + exit(0); + } + else if (validMode(argv[0])) { + mode_arg = argv[0]; + mode_argc = argc -1; + mode_argv = &argv[1]; + } + else { + + while (true) + { + /* getopt_long stores the option index here. */ + int index = -1; + + c = getopt_long (argc, argv, short_options, long_options, &index); + + /* Detect the end of the options. */ + if (c == -1) + break; + + switch (c) + { + case ':': + std::cerr << "Missing required argument for " + << (index == -1 ? std::string(1, (char)optopt) : std::string(long_options[index].name)) + << std::endl; + exit(1); + case 'h': + std::cout << usage() << "\n\n" << help() << std::endl; + exit(0); + case 'u': + std::cout << usage() << "\nUse --help for more information." << std::endl; + exit(0); + case 'V': + print_version(); + exit(0); + case '?': + std::cerr << "Use --usage or --help for some help\n"; + exit(1); + + } + } + } + } + + + void print() + { + } + +private: +}; + +#endif // __SECT_ARGS_HPP__ + diff --git a/src/sect/.deps/.gitignore b/src/sect/.deps/.gitignore new file mode 100644 index 00000000..bcce16fd --- /dev/null +++ b/src/sect/.deps/.gitignore @@ -0,0 +1,2 @@ +/*.Po +/*.dirstamp diff --git a/src/sect/.gitignore b/src/sect/.gitignore new file mode 100644 index 00000000..b3fb5e09 --- /dev/null +++ b/src/sect/.gitignore @@ -0,0 +1,2 @@ +/*.o +/*.dirstamp diff --git a/src/sect/sect.hpp b/src/sect/sect.hpp new file mode 100644 index 00000000..2a027c5f --- /dev/null +++ b/src/sect/sect.hpp @@ -0,0 +1,193 @@ +#if !defined(DEF_SECT_H) +#define DEF_SECT_H + +#include +#include +#include +#include + +#include +#include + +using std::vector; +using std::string; + +template +class Sect : public thread_exec +{ + const hash_t *hash; // Jellyfish hash + const vector *names; // Names of fasta sequences (in same order as seqs) + const vector *seqs; // Sequences in fasta sequences (in same order as names) + const uint_t kmer; // Kmer size to use + const uint_t threads; // Number of threads to use + const size_t bucket_size, remaining; // Chunking vars + vector*> *counts; // Kmer counts for each kmer window in sequence (in same order as seqs and names; built by this class) + vector *coverages; // Overall coverage calculated for each sequence from the kmer windows. + +public: + Sect(const hash_t *_hash, const vector *_names, const vector *_seqs, + uint_t _kmer, uint_t _threads) : + hash(_hash), names(_names), seqs(_seqs), + kmer(_kmer), threads(_threads), + bucket_size(seqs->size() / threads), + remaining(seqs->size() % (bucket_size < 1 ? 1 : threads)) + { + counts = new vector*>(seqs->size()); + coverages = new vector(seqs->size()); + } + + ~Sect() + { + if(counts) + { + for(uint_t i = 0; i < counts->size(); i++) + { + delete (*counts)[i]; + } + delete counts; + } + + if (coverages) + delete coverages; + } + + + void do_it() + { + exec_join(threads); + } + + void start(int th_id) + { + // Check to see if we have useful work to do for this thread, return if not + if (bucket_size < 1 && th_id >= seqs->size()) + { + return; + } + + //processInBlocks(th_id); + processInterlaced(th_id); + + } + + + void printVars() + { + std::cerr << "Sequences to process: " << seqs->size() << "\n"; + std::cerr << "Kmer: " << kmer << "\n"; + std::cerr << "Threads: " << threads << "\n"; + std::cerr << "Bucket size: " << bucket_size << "\n"; + std::cerr << "Remaining: " << remaining << "\n"; + } + + + void printCounts(std::ostream &out) + { + for(int i = 0; i < names->size(); i++) + { + out << ">" << (*names)[i].c_str() << "\n"; + + vector* seqCounts = (*counts)[i]; + + if (seqCounts != NULL) + { + for(uint_t j = 0; j < seqCounts->size(); j++) + { + out << " " << (*seqCounts)[j]; + } + out << "\n"; + } + else + { + out << " 0\n"; + } + } + } + + void printCoverages(std::ostream &out) + { + for(int i = 0; i < names->size(); i++) + { + out << (*coverages)[i] << "\n"; + } + } + + +private: + + // This method won't be optimal in most cases... Fasta files are normally sorted by length (largest first) + // So first thread will be asked to do more work than the rest + void processInBlocks(uint_t th_id) + { + size_t start = bucket_size < 1 ? th_id : th_id * bucket_size; + size_t end = bucket_size < 1 ? th_id : start + bucket_size - 1; + for(size_t i = start; i <= end; i++) + { + processSeq(i); + } + + // Process a remainder if required + if (th_id < remaining) + { + size_t rem_idx = (threads * bucket_size) + th_id; + processSeq(rem_idx); + } + } + + // This method is probably makes more efficient use of multiple cores on a length sorted fasta file + void processInterlaced(uint_t th_id) + { + size_t start = th_id; + size_t end = seqs->size(); + for(size_t i = start; i < end; i+=threads) + { + processSeq(i); + } + } + + void processSeq(const size_t index) + { + string seq = (*seqs)[index]; + uint_t nbCounts = seq.length() - kmer + 1; + + if (seq.length() < kmer) + { + std::cerr << (*names)[index].c_str() << ": " << seq << " is too short to compute coverage. Setting sequence coverage to 0.\n"; + return; + } + + std::cerr << "Seq: " << seq << "; Counts to create: " << nbCounts << "\n"; + + vector* seqCounts = new vector(nbCounts); + + uint64_t sum = 0; + + for(uint_t i = 0; i < nbCounts; i++) + { + + string merstr = seq.substr(i, kmer); + + // Jellyfish compacted hash does not support Ns so if we find one set this mer count to 0 + if (merstr.find("N") != string::npos) + { + (*seqCounts)[i] = 0; + } + else + { + const char* mer = merstr.c_str(); + uint_t count = (*hash)[mer]; + sum += count; + + (*seqCounts)[i] = count; + } + } + + (*counts)[index] = seqCounts; + + // Assumes simple mean calculation for sequence coverage for now... plug in Bernardo's method later. + (*coverages)[index] = (float)sum / (float)nbCounts; + } + +}; + +#endif //DEF_SECT_H diff --git a/src/sect/sect_args.hpp b/src/sect/sect_args.hpp new file mode 100644 index 00000000..f1e4eae2 --- /dev/null +++ b/src/sect/sect_args.hpp @@ -0,0 +1,188 @@ +#ifndef __SECT_ARGS_HPP__ +#define __SECT_ARGS_HPP__ + +#include + +class SectArgs +{ +public: + const char * fasta_arg; + const char * db_arg; + const char * input_type; + const char * output_arg; + uint_t threads_arg; + uint_t kmer_arg; + bool verbose; + + // Default constructor + SectArgs() : + output_arg(NULL), threads_arg(1), kmer_arg(31), verbose(false) + {} + + // Constructor that parses command line options + SectArgs(int argc, char* argv[]) : + output_arg(NULL), threads_arg(1), kmer_arg(31), verbose(false) + { + parse(argc, argv); + } + + + + +#define seqcvg_args_USAGE "Usage: sect [options] -f db_path" + const char * usage() const + { + return seqcvg_args_USAGE; + } + + void error(const char *msg) + { + std::cerr << "Error: " << msg << "\n" << usage() + << "\nUse --help for more information" + << std::endl; + exit(1); + } + + +#define sect_args_HELP "Estimates coverage for sequences in a fasta file using jellyfish kmer counts\n\n" \ + "Options (default value in (), *required):\n" \ + " -f, --fasta Fasta file contains sequences that should have coverage estimated. Kmers containing any Ns derived from sequences in the fasta files will have 0 coverage.\n" \ + " -o, --count_output File that should contain the sequence count profiles produced from this program. If not specified count data is not output\n" \ + " -t, --threads The number of threads to use. Default: 1\n" \ + " -k, --kmer The kmer size to use (must be the same as kmer sized used for jellyfish hash). Default: 31.\n" \ + " --usage Usage\n" \ + " --help This message\n" \ + " -V, --version Version" + + const char * help() const + { + return sect_args_HELP; + } + +#define sect_args_HIDDEN "Hidden options:" + const char * hidden() const + { + return sect_args_HIDDEN; + } + + void print_version(std::ostream &os = std::cout) const + { +#ifndef PACKAGE_VERSION +#define PACKAGE_VERSION "0.1.0" +#endif + os << PACKAGE_VERSION << "\n"; + } + + void parse(int argc, char *argv[]) + { + int c; + + static struct option long_options[] = + { + {"verbose", no_argument, 0, 'v'}, + {"fasta", required_argument, 0, 'f'}, + {"count_output", required_argument, 0, 'o'}, + {"threads", required_argument, 0, 't'}, + {"kmer", required_argument, 0, 'k'}, + {"help", no_argument, 0, 'h'}, + {"usage", no_argument, 0, 'u'}, + {"version", no_argument, 0, 'V'}, + {0, 0, 0, 0} + }; + + static const char *short_options = "f:o:t:k:Vvuh"; + + while (true) + { + /* getopt_long stores the option index here. */ + int index = -1; + + c = getopt_long (argc, argv, short_options, long_options, &index); + + /* Detect the end of the options. */ + if (c == -1) + break; + + switch (c) + { + case ':': + std::cerr << "Missing required argument for " + << (index == -1 ? std::string(1, (char)optopt) : std::string(long_options[index].name)) + << std::endl; + exit(1); + case 'h': + std::cout << usage() << "\n\n" << help() << std::endl; + exit(0); + case 'u': + std::cout << usage() << "\nUse --help for more information." << std::endl; + exit(0); + case 'V': + print_version(); + exit(0); + case '?': + std::cerr << "Use --usage or --help for some help\n"; + exit(1); + case 'v': + verbose = true; + break; + case 'f': + fasta_arg = optarg; + break; + case 'o': + output_arg = optarg; + break; + case 't': + threads_arg = atoi(optarg); + break; + case 'k': + kmer_arg = atoi(optarg); + break; + + } + } + + + // Parse arguments + if(argc - optind != 1) + error("Requires exactly 1 argument."); + db_arg = argv[optind++]; + } + + bool outputGiven() + { + return output_arg == NULL ? false : true; + } + + + void print() + { + if (verbose) + std::cerr << "Verbose flag set\n"; + + if (fasta_arg) + std::cerr << "Fasta file: " << fasta_arg << "\n"; + + if (threads_arg) + std::cerr << "Threads requested: " << threads_arg << "\n"; + + if (kmer_arg) + std::cerr << "Kmer size: " << kmer_arg << "\n"; + + if (db_arg) + std::cerr << "Jellyfish hash: " << db_arg << "\n"; + + if (outputGiven()) + { + std::cerr << "Count Output file provided: " << output_arg << "\n"; + } + else + { + std::cerr << "No output argument provided. Not outputing count information\n"; + } + } + +private: +}; + +#endif // __SECT_ARGS_HPP__ + diff --git a/src/sect/sect_main.cc b/src/sect/sect_main.cc new file mode 100644 index 00000000..3d87ae00 --- /dev/null +++ b/src/sect/sect_main.cc @@ -0,0 +1,156 @@ +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include + + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include "sect_args.hpp" +#include "sect.hpp" + +using std::vector; +using std::string; + +KSEQ_INIT(gzFile, gzread) + + +// Loads Fasta file into memory. Two vectors hold names and sequences respectively. Assumes no reordering will +// take place +void readFasta(const char *fastaPath, vector& fastaNames, vector& fastaSeqs) +{ + std::cerr << "Fasta file load: " << fastaPath << "\n"; + + gzFile fp; + fp = gzopen(fastaPath, "r"); // STEP 2: open the file handler + kseq_t *seq = kseq_init(fp); // STEP 3: initialize seq + int l; + while ((l = kseq_read(seq)) >= 0) // STEP 4: read sequence + { + fastaNames.push_back(seq->name.s); + fastaSeqs.push_back(seq->seq.s); + } + printf("return value: %d\n", l); + kseq_destroy(seq); // STEP 5: destroy seq + gzclose(fp); // STEP 6: close the file handler +} + +// Debugging routine.. not required for normal use +void printFastaData(vector& names, vector& seqs) +{ + if (names.size() != seqs.size()) + { + printf("something went wrong!!\n"); + return; + } + + printf("Printing fasta data\n"); + + for (int i = 0; i < names.size(); i++) + { + printf("name: %s\n", names[i].c_str()); + printf("seq: %s\n", seqs[i].c_str()); + } +} + +// Start point +int sectStart(int argc, char *argv[]) +{ + // Parse args + SectArgs args(argc, argv); + + // Print command line args to stderr if requested + if (args.verbose) + { + args.print(); + } + + // Create handle to the memory mapped hash file into memory + mapped_file dbf(args.db_arg); + + // Advise kernel on how we will use this memory (i.e. random access and we'll + // need it available soon.) + dbf.random().will_need(); + + // Load enitre fasta file into memory + vector names; + vector seqs; + readFasta(args.fasta_arg, names, seqs); + + // Get jellyfish has type + char type[8]; + memcpy(type, dbf.base(), sizeof(type)); + + // Process data differently depending on jellyfish hash type + if(!strncmp(type, jellyfish::raw_hash::file_type, sizeof(type))) + { + std::cerr << "Raw hash detected but not supported yet\n"; + } + else if(!strncmp(type, jellyfish::compacted_hash::file_type, sizeof(type))) + { + if (args.verbose) + { + std::cerr << "Compacted hash detected. Setting up query structure.\n"; + } + + // Load the jellyfish hash object + hash_query_t hash(dbf); + + // Output jellyfish has details if requested + if (args.verbose) + { + std::cerr << "mer length = " << hash.get_mer_len() << "\n" + << "hash size = " << hash.get_size() << "\n" + << "max reprobe = " << hash.get_max_reprobe() << "\n" + << "matrix = " << hash.get_hash_matrix().xor_sum() << "\n" + << "inv_matrix = " << hash.get_hash_inverse_matrix().xor_sum() << "\n"; + } + + // Create the sequence coverage object + Sect sect(&hash, &names, &seqs, args.kmer_arg, args.threads_arg); + + // Output seqcvg parameters to stderr if requested + if (args.verbose) + { + sect.printVars(); + } + + // Do the work + sect.do_it(); + + // Send sequence kmer counts to file if requested + if (args.outputGiven()) + { + ofstream_default count_out(args.outputGiven() ? args.output_arg : 0, std::cout); + sect.printCounts(count_out); + count_out.close(); + } + + // Send sequence coverage scores to standard out + ofstream_default out(0, std::cout); + sect.printCoverages(out); + out.close(); + } + else + { + die << "Invalid jellyfish file type '" << err::substr(type, sizeof(type)) << "'."; + } + + return 0; +}