From c07431fb886b5e524c1bfa6e392e32be76edcf13 Mon Sep 17 00:00:00 2001 From: Stefano Mazzocchi Date: Thu, 4 Mar 2010 00:29:52 +0000 Subject: [PATCH] - cataloged all the licenses for the libraries Gridworks depends on - added the secondstring libraries that contains all sorts of useful string distance functions - added a java arithmetic coding library (used to implement a string distance based on PPM arithmetic coding) - added the vicino kNN string clustering library (from MIT's SIMILE) git-svn-id: http://google-refine.googlecode.com/svn/trunk@181 7d457c2a-affb-35e4-300a-418c747d4874 --- .classpath | 4 +- LICENSE.txt | 43 +- lib-src/arithcode-1.1-sources.jar | Bin 0 -> 37276 bytes lib-src/secondstring-20100303-sources.jar | Bin 0 -> 109794 bytes lib/arithcode-1.1.jar | Bin 0 -> 31699 bytes lib/secondstring-20100303.jar | Bin 0 -> 207171 bytes licenses/apache2.0.LICENSE.txt | 202 ++ licenses/arithcode.LICENSE.txt | 30 + licenses/cos.LICENSE.txt | 82 + licenses/dom4j.LICENSE.txt | 27 + licenses/icu4j.LICENSE.txt | 28 + licenses/json.LICENSE.txt | 21 + licenses/secondstring.LICENSE.txt | 41 + licenses/simile.LICENSE.txt | 29 + licenses/slf4j.LICENSE.txt | 22 + .../java/edu/mit/simile/vicino/Distance.java | 7 + .../edu/mit/simile/vicino/Distributor.java | 61 + .../java/edu/mit/simile/vicino/Meter.java | 10 + .../java/edu/mit/simile/vicino/Operator.java | 47 + .../java/edu/mit/simile/vicino/Seeker.java | 52 + .../java/edu/mit/simile/vicino/Tester.java | 50 + .../vicino/distances/BZip2Distance.java | 26 + .../simile/vicino/distances/GZipDistance.java | 26 + .../vicino/distances/JaccardDistance.java | 18 + .../simile/vicino/distances/JaroDistance.java | 18 + .../vicino/distances/LevensteinDistance.java | 22 + .../vicino/distances/MetricDistance.java | 19 + .../simile/vicino/distances/PPMDistance.java | 27 + .../distances/PseudoMetricDistance.java | 17 + .../edu/mit/simile/vicino/vptree/Node.java | 42 + .../mit/simile/vicino/vptree/NodeSorter.java | 94 + .../edu/mit/simile/vicino/vptree/TNode.java | 52 + .../edu/mit/simile/vicino/vptree/VPTree.java | 33 + .../simile/vicino/vptree/VPTreeBuilder.java | 101 + .../simile/vicino/vptree/VPTreeSeeker.java | 48 + .../apache/tools/bzip2/BZip2Constants.java | 136 ++ .../apache/tools/bzip2/CBZip2InputStream.java | 865 +++++++++ .../tools/bzip2/CBZip2OutputStream.java | 1665 +++++++++++++++++ src/main/java/org/apache/tools/bzip2/CRC.java | 167 ++ 39 files changed, 4130 insertions(+), 2 deletions(-) create mode 100644 lib-src/arithcode-1.1-sources.jar create mode 100644 lib-src/secondstring-20100303-sources.jar create mode 100644 lib/arithcode-1.1.jar create mode 100644 lib/secondstring-20100303.jar create mode 100644 licenses/apache2.0.LICENSE.txt create mode 100644 licenses/arithcode.LICENSE.txt create mode 100644 licenses/cos.LICENSE.txt create mode 100644 licenses/dom4j.LICENSE.txt create mode 100644 licenses/icu4j.LICENSE.txt create mode 100644 licenses/json.LICENSE.txt create mode 100644 licenses/secondstring.LICENSE.txt create mode 100644 licenses/simile.LICENSE.txt create mode 100644 licenses/slf4j.LICENSE.txt create mode 100644 src/main/java/edu/mit/simile/vicino/Distance.java create mode 100644 src/main/java/edu/mit/simile/vicino/Distributor.java create mode 100644 src/main/java/edu/mit/simile/vicino/Meter.java create mode 100644 src/main/java/edu/mit/simile/vicino/Operator.java create mode 100644 src/main/java/edu/mit/simile/vicino/Seeker.java create mode 100644 src/main/java/edu/mit/simile/vicino/Tester.java create mode 100644 src/main/java/edu/mit/simile/vicino/distances/BZip2Distance.java create mode 100644 src/main/java/edu/mit/simile/vicino/distances/GZipDistance.java create mode 100644 src/main/java/edu/mit/simile/vicino/distances/JaccardDistance.java create mode 100644 src/main/java/edu/mit/simile/vicino/distances/JaroDistance.java create mode 100644 src/main/java/edu/mit/simile/vicino/distances/LevensteinDistance.java create mode 100644 src/main/java/edu/mit/simile/vicino/distances/MetricDistance.java create mode 100644 src/main/java/edu/mit/simile/vicino/distances/PPMDistance.java create mode 100644 src/main/java/edu/mit/simile/vicino/distances/PseudoMetricDistance.java create mode 100755 src/main/java/edu/mit/simile/vicino/vptree/Node.java create mode 100755 src/main/java/edu/mit/simile/vicino/vptree/NodeSorter.java create mode 100755 src/main/java/edu/mit/simile/vicino/vptree/TNode.java create mode 100755 src/main/java/edu/mit/simile/vicino/vptree/VPTree.java create mode 100755 src/main/java/edu/mit/simile/vicino/vptree/VPTreeBuilder.java create mode 100755 src/main/java/edu/mit/simile/vicino/vptree/VPTreeSeeker.java create mode 100644 src/main/java/org/apache/tools/bzip2/BZip2Constants.java create mode 100644 src/main/java/org/apache/tools/bzip2/CBZip2InputStream.java create mode 100644 src/main/java/org/apache/tools/bzip2/CBZip2OutputStream.java create mode 100644 src/main/java/org/apache/tools/bzip2/CRC.java diff --git a/.classpath b/.classpath index 4fde3ef69..80c2952c7 100644 --- a/.classpath +++ b/.classpath @@ -11,8 +11,10 @@ + + + - diff --git a/LICENSE.txt b/LICENSE.txt index 69409bed8..0721cdf14 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,45 @@ /* * (c) Copyright 2010 Metaweb Technologies, Inc. All rights reserved. - * */ + +See the 'licenses' directory for a list of the licenses for the libraries we depend on, +ordered here by license: + +licenses/apache2.0.LICENSE.txt + jetty + jetty-util + servlet-api + commons-lang + commons-codec + log4j + xmlbeans + poi + poi-ooxml + poi-ooxml-schemas + jdatapath + +licenses/secondstring.LICENSE.txt (BSD family) + secondstring + +licenses/dom4j.LICENSE.txt (BSD family) + dom4j + +licenses/simile.LICENSE.txt (BSD family) + vicino + +licenses/arithcode.LICENSE.txt (BSD family) + arithcode + +licenses/icu4j.LICENSE.txt (MIT family) + icu4j + +licenses/slf4j.LICENSE.txt (MIT family) + slf4j-api + slf4j-log4j12 + jcl-over-slf4j + +licenses/json.LICENSE.txt (MIT family) + json + +licenses/cos.LICENSE.txt + cos \ No newline at end of file diff --git a/lib-src/arithcode-1.1-sources.jar b/lib-src/arithcode-1.1-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..c4569b6e901f98c3603c573132377531b58b58e9 GIT binary patch literal 37276 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 literal 0 HcmV?d00001 diff --git a/lib-src/secondstring-20100303-sources.jar b/lib-src/secondstring-20100303-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..0fa453d457fce1df7f4790ee2d766052b6d1a067 GIT binary patch literal 109794 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 GO8*1-WA#k{ literal 0 HcmV?d00001 diff --git a/lib/arithcode-1.1.jar b/lib/arithcode-1.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..8ab9142db5dc5f912946903c21ca5dac62577338 GIT binary patch literal 31699 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

6G}HD4_UGKa;c(Ye{NQm`{p6jSML@qf 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 literal 0 HcmV?d00001 diff --git a/lib/secondstring-20100303.jar b/lib/secondstring-20100303.jar new file mode 100644 index 0000000000000000000000000000000000000000..427fcbbcce64636a12cee9342520c048e7b296ac GIT binary patch literal 207171 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�Nyk}M|L0mvTbHOYkeoZh(j4*kBS%T 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 literal 0 HcmV?d00001 diff --git a/licenses/apache2.0.LICENSE.txt b/licenses/apache2.0.LICENSE.txt new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/licenses/apache2.0.LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/licenses/arithcode.LICENSE.txt b/licenses/arithcode.LICENSE.txt new file mode 100644 index 000000000..de5381ef9 --- /dev/null +++ b/licenses/arithcode.LICENSE.txt @@ -0,0 +1,30 @@ +Copyright (c) 2002, Bob Carpenter. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of colloquial.com nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/licenses/cos.LICENSE.txt b/licenses/cos.LICENSE.txt new file mode 100644 index 000000000..e6b336ac8 --- /dev/null +++ b/licenses/cos.LICENSE.txt @@ -0,0 +1,82 @@ +Copyright (C) 2001-2009 by Jason Hunter, jhunter@servlets.com. +All rights reserved. + +The source code, object code, and documentation in the com.oreilly.servlet +package is copyright and owned by Jason Hunter. + + +ON-SITE USE RIGHTS + +Permission is granted to use the com.oreilly.servlet.* packages in the +development of any *non-commercial* project. For this use you are granted +a non-exclusive, non-transferable limited license at no cost. + +For a *commercial* project, permission is granted to use the +com.oreilly.servlet.* packages provided that every person on the development +team for that project owns a copy of the book Java Servlet Programming +(O'Reilly) in its most recent edition. The most recent edition is currently +the 2nd Edition, available in association with Amazon.com at +http://www.amazon.com/exec/obidos/ASIN/0596000405/jasonhunter. + +Other (sometimes cheaper) license terms are available upon request; please +write to jhunter@servlets.com for more information. + + +REDISTRIBUTION RIGHTS + +Commercial redistribution rights of the com.oreilly.servlet.* packages are +available by writing jhunter@servlets.com. + +Non-commercial redistribution is permitted provided that: + +1. You redistribute the package in object code form only (as Java .class files +or a .jar file containing the .class files) and only as part of a product that +uses the classes as part of its primary functionality. + +2. The product containing the package is non-commercial in nature. + +3. The public interface to the classes in the package, and the public +interface to any classes with similar functionality, is hidden from end users +when engaged in normal use of the product. + +4. The distribution is not part of a software development kit, operating +system, other library, or a development tool without written permission from +the copyright holder. + +5. The distribution includes copyright notice as follows: "The source code, +object code, and documentation in the com.oreilly.servlet package is copyright +and owned by Jason Hunter." in the documentation and/or other materials +provided with the distribution. + +6. You reproduce the above copyright notice, this list of conditions, and the +following disclaimer in the documentation and/or other materials provided with +the distribution. + +7. Licensor retains title to and ownership of the Software and all +enhancements, modifications, and updates to the Software. + +Note that the com.oreilly.servlet package is provided "as is" and the author +will not be liable for any damages suffered as a result of your use. +Furthermore, you understand the package comes without any guarantee of +technical support. + +You can always find the latest version of the com.oreilly.servlet package at +http://www.servlets.com. + + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +Thanks, + +Jason Hunter +jhunter AT servlets.com diff --git a/licenses/dom4j.LICENSE.txt b/licenses/dom4j.LICENSE.txt new file mode 100644 index 000000000..c86228f19 --- /dev/null +++ b/licenses/dom4j.LICENSE.txt @@ -0,0 +1,27 @@ +Redistribution and use of this software and associated documentation ("Software"), +with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain copyright statements and notices. +Redistributions must also contain a copy of this document. +2. Redistributions in binary form must reproduce the above copyright notice, this +list of conditions and the following disclaimer in the documentation and/or other +materials provided with the distribution. +3. The name "DOM4J" must not be used to endorse or promote products derived from this +Software without prior written permission of MetaStuff, Ltd. For written permission, +please contact dom4j-info@metastuff.com. +4. Products derived from this Software may not be called "DOM4J" nor may "DOM4J" +appear in their names without prior written permission of MetaStuff, Ltd. DOM4J is a +registered trademark of MetaStuff, Ltd. +5. Due credit should be given to the DOM4J Project - http://www.dom4j.org + +THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +METASTUFF, LTD. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. \ No newline at end of file diff --git a/licenses/icu4j.LICENSE.txt b/licenses/icu4j.LICENSE.txt new file mode 100644 index 000000000..677f38878 --- /dev/null +++ b/licenses/icu4j.LICENSE.txt @@ -0,0 +1,28 @@ +ICU License - ICU 1.8.1 and later + +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1995-2009 International Business Machines Corporation and others + +All rights reserved. + +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, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, provided that the above copyright notice(s) and this +permission notice appear in all copies of the Software and that both the above copyright +notice(s) and this permission notice appear in supporting documentation. + +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 OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF +USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall not be used +in advertising or otherwise to promote the sale, use or other dealings in this Software +without prior written authorization of the copyright holder. + diff --git a/licenses/json.LICENSE.txt b/licenses/json.LICENSE.txt new file mode 100644 index 000000000..493319796 --- /dev/null +++ b/licenses/json.LICENSE.txt @@ -0,0 +1,21 @@ +Copyright (c) 2002 JSON.org + +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 shall be used for Good, not Evil. + +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. \ No newline at end of file diff --git a/licenses/secondstring.LICENSE.txt b/licenses/secondstring.LICENSE.txt new file mode 100644 index 000000000..b65a2af97 --- /dev/null +++ b/licenses/secondstring.LICENSE.txt @@ -0,0 +1,41 @@ +Copyright (c) 2003 Carnegie Mellon University +All rights reserved. +Developed by: Center for Automated Learning and Discovery + Carnegie Mellon University + http://www.cald.cs.cmu.edu + + The design and implementation of this software was supported in + part by National Science Foundation Grant No. EIA-0131884 to the + National Institute of Statistical Sciences, and by a contract + from the Army Research Office to the Center for Computer and + Communications Security with Carnegie Mellon University. + + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal with 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: + +Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimers. +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimers in the +documentation and/or other materials provided with the distribution. +Neither the names of the Center for Automated Learning and Discovery, +or Carnegie Mellon University, nor the names of its contributors may +be used to endorse or promote products derived from this Software +without specific prior written permission. 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 +CONTRIBUTORS 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 WITH THE SOFTWARE. + +[This is an instance of the University of Illinois/NCSA Open Source +agreement, obtained from http://www.opensource.org/licenses/UoI-NCSA.php] + diff --git a/licenses/simile.LICENSE.txt b/licenses/simile.LICENSE.txt new file mode 100644 index 000000000..69bf77c10 --- /dev/null +++ b/licenses/simile.LICENSE.txt @@ -0,0 +1,29 @@ +/* + * (c) Copyright Massachusetts Institute of Technology & Contributors. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ diff --git a/licenses/slf4j.LICENSE.txt b/licenses/slf4j.LICENSE.txt new file mode 100644 index 000000000..29182a587 --- /dev/null +++ b/licenses/slf4j.LICENSE.txt @@ -0,0 +1,22 @@ + Copyright (c) 2004-2008 QOS.ch + All rights reserved. + + 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. + \ No newline at end of file diff --git a/src/main/java/edu/mit/simile/vicino/Distance.java b/src/main/java/edu/mit/simile/vicino/Distance.java new file mode 100644 index 000000000..e9da35d46 --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/Distance.java @@ -0,0 +1,7 @@ +package edu.mit.simile.vicino; + +public interface Distance { + + public float d(String x, String y); + +} diff --git a/src/main/java/edu/mit/simile/vicino/Distributor.java b/src/main/java/edu/mit/simile/vicino/Distributor.java new file mode 100644 index 000000000..1ac104b7c --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/Distributor.java @@ -0,0 +1,61 @@ +package edu.mit.simile.vicino; + +import java.util.List; + +import edu.mit.simile.vicino.Distance; + +public class Distributor extends Operator { + + private static final int COLUMNS = 70; + private static final char CHAR = '='; + + public static void main(String[] args) throws Exception { + + Distance d = getDistance(args[0]); + + List strings = getStrings(args[1]); + + int buckets = Integer.parseInt(args[2]); + + long start = System.currentTimeMillis(); + int[] values = new int[buckets]; + + int size = strings.size(); + for (int i = 0; i < size; i++) { + String x = (String) strings.get((int) (Math.random() * size)); + String y = (String) strings.get((int) (Math.random() * size)); + int dist = (int) (buckets * d.d(x, y)); + values[dist]++; + System.out.print("."); + } + System.out.println(); + + long stop = System.currentTimeMillis(); + float m = ((float) (stop - start)) / (float) size; + + int maxValue = 0; + for (int i = 0; i < buckets; i++) { + if (values[i] > maxValue) { + maxValue = values[i]; + } + } + + System.out + .println("+-------------------------------------------------------------------"); + for (int i = 0; i < buckets; i++) { + System.out.println("|" + bar(COLUMNS * values[i] / maxValue)); + } + System.out + .println("+-------------------------------------------------------------------"); + + System.out.println("\n Each distance calculation took: " + m + " millis"); + } + + static private String bar(int value) { + StringBuffer b = new StringBuffer(value); + for (int i = 0; i < value; i++) { + b.append(CHAR); + } + return b.toString(); + } +} diff --git a/src/main/java/edu/mit/simile/vicino/Meter.java b/src/main/java/edu/mit/simile/vicino/Meter.java new file mode 100644 index 000000000..d83defb70 --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/Meter.java @@ -0,0 +1,10 @@ +package edu.mit.simile.vicino; + +public class Meter extends Operator { + + public static void main(String[] args) throws Exception { + Distance d = getDistance(args[0]); + System.out.println(args[1] + " <- " + d.d(args[1], args[2]) + " -> " + args[2]); + } + +} diff --git a/src/main/java/edu/mit/simile/vicino/Operator.java b/src/main/java/edu/mit/simile/vicino/Operator.java new file mode 100644 index 000000000..83eea561c --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/Operator.java @@ -0,0 +1,47 @@ +package edu.mit.simile.vicino; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class Operator { + + static void log(String msg) { + System.out.println(msg); + } + + static Distance getDistance(String distance) throws Exception { + return (Distance) Class.forName("edu.mit.simile.vicino.distances." + distance + "Distance").newInstance(); + } + + static List getStrings(String fileName) throws IOException { + ArrayList strings = new ArrayList(); + + File file = new File(fileName); + if (file.isDirectory()) { + File[] files = file.listFiles(); + for (int i = 0; i < files.length; i++) { + BufferedReader input = new BufferedReader(new FileReader(files[i])); + StringBuffer b = new StringBuffer(); + String line; + while ((line = input.readLine()) != null) { + b.append(line.trim()); + } + input.close(); + strings.add(b.toString()); + } + } else { + BufferedReader input = new BufferedReader(new FileReader(fileName)); + String line; + while ((line = input.readLine()) != null) { + strings.add(line.trim()); + } + input.close(); + } + + return strings; + } +} diff --git a/src/main/java/edu/mit/simile/vicino/Seeker.java b/src/main/java/edu/mit/simile/vicino/Seeker.java new file mode 100644 index 000000000..d52ea5bbf --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/Seeker.java @@ -0,0 +1,52 @@ +package edu.mit.simile.vicino; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.Serializable; +import java.util.Iterator; +import java.util.List; + +import edu.mit.simile.vicino.vptree.VPTree; +import edu.mit.simile.vicino.vptree.VPTreeBuilder; +import edu.mit.simile.vicino.vptree.VPTreeSeeker; + +public class Seeker extends Operator { + + public static void main(String[] args) throws Exception { + Distance d = getDistance(args[0]); + + log("Working with distance: " + d); + List strings = getStrings(args[1]); + log("Obtained " + strings.size() + " from " + args[1]); + + log("Building VPTree..."); + VPTreeBuilder builder = new VPTreeBuilder(d); + VPTree tree = builder.buildVPTree(strings); + log("..done"); + + VPTreeSeeker seeker = new VPTreeSeeker(d, tree); + + log("type a string|range then hit return:"); + BufferedReader input = new BufferedReader(new InputStreamReader( + System.in)); + String line = null; + while ((line = input.readLine()) != null) { + int index = line.indexOf('|'); + String query = line.substring(0, index); + float range = Float.parseFloat(line.substring(index + 1)); + long start = System.currentTimeMillis(); + List results = seeker.range(query, range); + long stop = System.currentTimeMillis(); + Iterator j = results.iterator(); + if (j.hasNext()) { + while (j.hasNext()) { + String r = (String) j.next(); + log(" " + r); + } + log(" [done in " + (stop - start) + "ms]"); + } else { + log(" [no results found in " + (stop - start) + "ms]"); + } + } + } +} diff --git a/src/main/java/edu/mit/simile/vicino/Tester.java b/src/main/java/edu/mit/simile/vicino/Tester.java new file mode 100644 index 000000000..b97255c6c --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/Tester.java @@ -0,0 +1,50 @@ +package edu.mit.simile.vicino; + +import java.util.List; + +public class Tester extends Operator { + + public static void main(String[] args) throws Exception { + Distance d = getDistance(args[0]); + + List strings = getStrings(args[1]); + + long start = System.currentTimeMillis(); + + int size = strings.size(); + for (int i = 0; i < size; i++) { + String x = (String) strings.get((int) (Math.random() * size)); + String y = (String) strings.get((int) (Math.random() * size)); + String z = (String) strings.get((int) (Math.random() * size)); + boolean metric = metric(x, y, z, d); + if (metric) { + System.out.println("metric"); + } else { + System.out.println("***** NOT METRIC *****"); + } + } + + long stop = System.currentTimeMillis(); + float m = ((float) (stop - start)) / (float) size; + + System.out.println("\n Each metric evaluation took: " + m + " millis"); + } + + static boolean metric(String x, String y, String z, Distance d) { + float dxx = d.d(x, x); + boolean identity = (dxx == 0.0f); + float dxy = d.d(x, y); + float dyx = d.d(y, x); + boolean simmetrical = (dxy == dyx); + float dxz = d.d(x, z); + float dyz = d.d(y, z); + boolean triangular = (dxz <= dxy + dyz); + return (identity && simmetrical && triangular); + } + + static Distance getDistance(String distance) throws Exception { + return (Distance) Class.forName( + "edu.mit.simile.vicino.distances." + distance + "Distance") + .newInstance(); + } +} diff --git a/src/main/java/edu/mit/simile/vicino/distances/BZip2Distance.java b/src/main/java/edu/mit/simile/vicino/distances/BZip2Distance.java new file mode 100644 index 000000000..dea474099 --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/distances/BZip2Distance.java @@ -0,0 +1,26 @@ +package edu.mit.simile.vicino.distances; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +import org.apache.tools.bzip2.CBZip2OutputStream; + +public class BZip2Distance extends PseudoMetricDistance { + + public float d2(String x, String y) { + String str = x + y; + float result = 0.0f; + try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(str.length()); + CBZip2OutputStream os = new CBZip2OutputStream(baos); + os.write(str.getBytes()); + os.close(); + baos.close(); + result = baos.toByteArray().length; + } catch (IOException e) { + e.printStackTrace(); + } + return result; + } + +} diff --git a/src/main/java/edu/mit/simile/vicino/distances/GZipDistance.java b/src/main/java/edu/mit/simile/vicino/distances/GZipDistance.java new file mode 100644 index 000000000..5bbfe36ff --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/distances/GZipDistance.java @@ -0,0 +1,26 @@ +package edu.mit.simile.vicino.distances; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.zip.GZIPOutputStream; + +public class GZipDistance extends PseudoMetricDistance { + + public float d2(String x, String y) { + String str = x + y; + float result = 0.0f; + try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(str.length()); + GZIPOutputStream os = new GZIPOutputStream(baos); + os.write(str.getBytes()); + os.close(); + baos.close(); + result = baos.toByteArray().length; + } catch (IOException e) { + e.printStackTrace(); + } + return result; + + } + +} diff --git a/src/main/java/edu/mit/simile/vicino/distances/JaccardDistance.java b/src/main/java/edu/mit/simile/vicino/distances/JaccardDistance.java new file mode 100644 index 000000000..0e4f50670 --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/distances/JaccardDistance.java @@ -0,0 +1,18 @@ +package edu.mit.simile.vicino.distances; + +import com.wcohen.ss.Jaccard; +import com.wcohen.ss.api.StringDistance; + +public class JaccardDistance extends MetricDistance { + + StringDistance distance; + + public JaccardDistance() { + this.distance = new Jaccard(); + } + + protected float d2(String x, String y) { + return Math.abs((float) this.distance.score(x, y) - 1.0f); + } + +} diff --git a/src/main/java/edu/mit/simile/vicino/distances/JaroDistance.java b/src/main/java/edu/mit/simile/vicino/distances/JaroDistance.java new file mode 100644 index 000000000..d17166d51 --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/distances/JaroDistance.java @@ -0,0 +1,18 @@ +package edu.mit.simile.vicino.distances; + +import com.wcohen.ss.Jaro; +import com.wcohen.ss.api.StringDistance; + +public class JaroDistance extends MetricDistance { + + StringDistance distance; + + public JaroDistance() { + this.distance = new Jaro(); + } + + protected float d2(String x, String y) { + return Math.abs((float) this.distance.score(x, y) - 1.0f); + } + +} diff --git a/src/main/java/edu/mit/simile/vicino/distances/LevensteinDistance.java b/src/main/java/edu/mit/simile/vicino/distances/LevensteinDistance.java new file mode 100644 index 000000000..5eaff95a4 --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/distances/LevensteinDistance.java @@ -0,0 +1,22 @@ +package edu.mit.simile.vicino.distances; + +import com.wcohen.ss.Levenstein; +import com.wcohen.ss.api.StringDistance; + +import edu.mit.simile.vicino.Distance; + +public class LevensteinDistance implements Distance { + + StringDistance distance; + + public LevensteinDistance() { + this.distance = new Levenstein(); + } + + public float d(String x, String y) { + float d = Math.abs((float) this.distance.score(x, y)); + // System.out.println(this.distance.explainScore(x,y)); + return d / (x.length() + y.length()); + } + +} diff --git a/src/main/java/edu/mit/simile/vicino/distances/MetricDistance.java b/src/main/java/edu/mit/simile/vicino/distances/MetricDistance.java new file mode 100644 index 000000000..4084be1e4 --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/distances/MetricDistance.java @@ -0,0 +1,19 @@ +package edu.mit.simile.vicino.distances; + +import edu.mit.simile.vicino.Distance; + +public abstract class MetricDistance implements Distance { + + /* + * public float d(String x,String y) { float dxy = d2(x,y); float dx = + * d2(x,""); float dy = d2(y,""); float result = dxy / (dx + dy); return + * result; } + */ + + public float d(String x, String y) { + return d2(x, y); + } + + abstract float d2(String x, String y); + +} diff --git a/src/main/java/edu/mit/simile/vicino/distances/PPMDistance.java b/src/main/java/edu/mit/simile/vicino/distances/PPMDistance.java new file mode 100644 index 000000000..d4f31cb04 --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/distances/PPMDistance.java @@ -0,0 +1,27 @@ +package edu.mit.simile.vicino.distances; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +import com.colloquial.arithcode.ArithCodeOutputStream; +import com.colloquial.arithcode.PPMModel; + +public class PPMDistance extends PseudoMetricDistance { + + public float d2(String x, String y) { + String str = x + y; + float result = 0.0f; + try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(str.length()); + ArithCodeOutputStream os = new ArithCodeOutputStream(baos,new PPMModel(8)); + os.write(str.getBytes()); + os.close(); + baos.close(); + result = baos.toByteArray().length; + } catch (IOException e) { + e.printStackTrace(); + } + return result; + } + +} diff --git a/src/main/java/edu/mit/simile/vicino/distances/PseudoMetricDistance.java b/src/main/java/edu/mit/simile/vicino/distances/PseudoMetricDistance.java new file mode 100644 index 000000000..a14f825f1 --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/distances/PseudoMetricDistance.java @@ -0,0 +1,17 @@ +package edu.mit.simile.vicino.distances; + +import edu.mit.simile.vicino.Distance; + +public abstract class PseudoMetricDistance implements Distance { + + public float d(String x, String y) { + float cxx = d2(x, x); + float cyy = d2(y, y); + float cxy = d2(x, y); + float cyx = d2(y, x); + float result1 = (cxy + cyx) / (cxx + cyy) - 1.0f; + return result1; + } + + protected abstract float d2(String x, String y); +} diff --git a/src/main/java/edu/mit/simile/vicino/vptree/Node.java b/src/main/java/edu/mit/simile/vicino/vptree/Node.java new file mode 100755 index 000000000..4de3f2f34 --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/vptree/Node.java @@ -0,0 +1,42 @@ +package edu.mit.simile.vicino.vptree; + +import java.io.Serializable; + +/** + * This class represent a couple (Object, distance) value of that Object from + * the Vp in each step of the algorithm. + * + * @author Paolo Ciccarese + */ +public class Node implements Serializable { + + private static final long serialVersionUID = -2077473220894258550L; + + private final Serializable obj; + private float distance; + + public Node(Serializable obj, int i) { + this.obj = obj; + this.distance = i; + } + + public Node(Serializable obj) { + this.obj = obj; + } + + public Serializable get() { + return this.obj; + } + + public void setDistance(float distance) { + this.distance = distance; + } + + public float getDistance() { + return distance; + } + + public String toString() { + return obj.toString(); + } +} diff --git a/src/main/java/edu/mit/simile/vicino/vptree/NodeSorter.java b/src/main/java/edu/mit/simile/vicino/vptree/NodeSorter.java new file mode 100755 index 000000000..2c1d2c071 --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/vptree/NodeSorter.java @@ -0,0 +1,94 @@ +package edu.mit.simile.vicino.vptree; + +public class NodeSorter { + + /** + * Sort array of Objects using the QuickSort algorithm. + * + * @param s + * An Object[]. + * @param lo + * The current lower bound. + * @param hi + * The current upper bound. + */ + public static void sort(Node nodes[], int lo, int hi) { + if (lo >= hi) { + return; + } + + /* + * Use median-of-three(lo, mid, hi) to pick a partition. Also swap them + * into relative order while we are at it. + */ + int mid = (lo + hi) / 2; + + if (nodes[lo].getDistance() > nodes[mid].getDistance()) { + // Swap. + Node tmp = nodes[lo]; + nodes[lo] = nodes[mid]; + nodes[mid] = tmp; + } + + if (nodes[mid].getDistance() > nodes[hi].getDistance()) { + // Swap . + Node tmp = nodes[mid]; + nodes[mid] = nodes[hi]; + nodes[hi] = tmp; + + if (nodes[lo].getDistance() > nodes[mid].getDistance()) { + // Swap. + Node tmp2 = nodes[lo]; + nodes[lo] = nodes[mid]; + nodes[mid] = tmp2; + } + } + + // Start one past lo since already handled lo. + + int left = lo + 1; + + // Similarly, end one before hi since already handled hi. + + int right = hi - 1; + + // If there are three or fewer elements, we are done. + + if (left >= right) { + return; + } + + Node partition = nodes[mid]; + + while (true) { + while (nodes[right].getDistance() > partition.getDistance()) { + --right; + } + + while (left < right && nodes[left].getDistance() <= partition.getDistance()) { + ++left; + } + + if (left < right) { + // Swap. + Node tmp = nodes[left]; + nodes[left] = nodes[right]; + nodes[right] = tmp; + + --right; + } else { + break; + } + } + + sort(nodes, lo, left); + sort(nodes, left + 1, hi); + } + + /** + * Sorts and array of objects. + */ + public void sort(Node nodes[]) { + NodeSorter.sort(nodes, 0, nodes.length - 1); + } +} diff --git a/src/main/java/edu/mit/simile/vicino/vptree/TNode.java b/src/main/java/edu/mit/simile/vicino/vptree/TNode.java new file mode 100755 index 000000000..1f9917fc8 --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/vptree/TNode.java @@ -0,0 +1,52 @@ +package edu.mit.simile.vicino.vptree; + +import java.io.Serializable; + +/** + * @author Paolo Ciccarese + */ +public class TNode implements Serializable { + + private static final long serialVersionUID = -217604190976851241L; + + private final Serializable obj; + private float median; + private TNode left; + private TNode right; + + /** + * The Object will be fixed during the instantiation of the node, while the + * children will be defined in another iteration of the algorithm, + */ + public TNode(Serializable obj) { + this.obj = obj; + } + + public Serializable get() { + return this.obj; + } + + public void setMedian(float median) { + this.median = median; + } + + public float getMedian() { + return median; + } + + public void setLeft(TNode leftNode) { + this.left = leftNode; + } + + public TNode getLeft() { + return left; + } + + public void setRight(TNode rightNode) { + this.right = rightNode; + } + + public TNode getRight() { + return right; + } +} diff --git a/src/main/java/edu/mit/simile/vicino/vptree/VPTree.java b/src/main/java/edu/mit/simile/vicino/vptree/VPTree.java new file mode 100755 index 000000000..4ce8cb997 --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/vptree/VPTree.java @@ -0,0 +1,33 @@ +package edu.mit.simile.vicino.vptree; + +import java.io.Serializable; + +/** + * The VPTree class. + * + * @author Paolo Ciccarese + */ +public class VPTree implements Serializable { + + private static final long serialVersionUID = 1291056732155841123L; + + private TNode root; + + /** + * Sets the root of the VPTree. + * + * @param root The VPTree root. + */ + public void setRoot(TNode root) { + this.root = root; + } + + /** + * Get the root of the VPTree. + * + * @return The VPTree root. + */ + public TNode getRoot() { + return root; + } +} diff --git a/src/main/java/edu/mit/simile/vicino/vptree/VPTreeBuilder.java b/src/main/java/edu/mit/simile/vicino/vptree/VPTreeBuilder.java new file mode 100755 index 000000000..c7ea617e3 --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/vptree/VPTreeBuilder.java @@ -0,0 +1,101 @@ +package edu.mit.simile.vicino.vptree; + +import java.io.Serializable; +import java.util.Collection; +import java.util.Iterator; +import java.util.Random; + +import edu.mit.simile.vicino.Distance; + +/** + * @author Paolo Ciccarese + * @author Stefano Mazzocchi + */ +public class VPTreeBuilder { + + private static final boolean DEBUG = false; + + private Random generator = new Random(System.currentTimeMillis()); + + private VPTree tree; + private final Distance distance; + + /** + * Defines a VPTree Builder for a specific distance. + * + * @param distance The class implementing the distance. + */ + public VPTreeBuilder(Distance distance) { + this.distance = distance; + } + + public VPTree buildVPTree(Collection col) { + Node nodes[] = new Node[col.size()]; + Iterator i = col.iterator(); + int counter = 0; + while (i.hasNext()) { + Serializable s = (Serializable) i.next(); + nodes[counter++] = new Node(s); + } + + tree = new VPTree(); + tree.setRoot(addNode(nodes, 0, nodes.length - 1)); + return tree; + } + + private TNode addNode(Node nodes[], int begin, int end) { + + int delta = end - begin; + int middle = begin + delta / 2; + + TNode node = new TNode(nodes[begin + getRandomIndex(delta)].get()); + + if (DEBUG) System.out.println("\nnode: " + node.get().toString()); + + calculateDistances(node, nodes, begin, end); + orderDistances(nodes, begin, end); + + if (DEBUG) { + for (int i = begin; i <= end; i++) { + System.out.println(" +-- " + nodes[i].getDistance() + " --> " + nodes[i].get()); + } + } + + if (delta + 1 > 0) { + if (middle - (begin + 1) >= 1) { + node.setLeft(addNode(nodes, begin + 1, middle)); + if (DEBUG) System.out.println(" L --> " + node.getLeft().get()); + } else if (middle - (begin + 1) == 0) { + node.setLeft(new TNode(nodes[middle].get())); + if (DEBUG) System.out.println(" L --> " + node.getLeft().get()); + } + + if ((end - (middle + 1)) >= 1) { + node.setRight(addNode(nodes, middle + 1, end)); + if (DEBUG) System.out.println(" R --> " + node.getRight().get()); + } else if (end - (middle + 1) == 0) { + node.setRight(new TNode(nodes[middle + 1].get())); + if (DEBUG) System.out.println(" R --> " + node.getRight().get()); + } + } + + return node; + } + + private void calculateDistances(TNode pivot, Node nodes[], int begin, int end) { + for (int i = begin; i <= end; i++) { + Object x = pivot.get(); + Object y = nodes[i].get(); + float d = (x == y) ? 0.0f : distance.d(x.toString(), y.toString()); + nodes[i].setDistance(d); + } + } + + private void orderDistances(Node nodes[], int begin, int end) { + NodeSorter.sort(nodes, begin, end); + } + + private int getRandomIndex(int max) { + return generator.nextInt(max); + } +} diff --git a/src/main/java/edu/mit/simile/vicino/vptree/VPTreeSeeker.java b/src/main/java/edu/mit/simile/vicino/vptree/VPTreeSeeker.java new file mode 100755 index 000000000..389a75eaf --- /dev/null +++ b/src/main/java/edu/mit/simile/vicino/vptree/VPTreeSeeker.java @@ -0,0 +1,48 @@ +package edu.mit.simile.vicino.vptree; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import edu.mit.simile.vicino.Distance; + +/** + * @author Paolo Ciccarese + */ +public class VPTreeSeeker { + + VPTree tree; + Distance distance; + + public VPTreeSeeker(Distance distance, VPTree tree) { + this.distance = distance; + this.tree = tree; + } + + public List range(Object query, float range) { + return rangeTraversal(query, range, tree.getRoot(), new ArrayList()); + } + + private List rangeTraversal(Object query, float range, TNode tNode, List results) { + + if (tNode != null) { + float distance = this.distance.d(query.toString(), tNode.toString()); + + if (distance < range) { + results.add(tNode.get()); + } + + if ((distance + range) < tNode.getMedian()) { + rangeTraversal(query, range, tNode.getLeft(), results); + } else if ((distance - range) > tNode.getMedian()) { + rangeTraversal(query, range, tNode.getRight(), results); + } else { + rangeTraversal(query, range, tNode.getLeft(), results); + rangeTraversal(query, range, tNode.getRight(), results); + } + } + + return results; + } + +} diff --git a/src/main/java/org/apache/tools/bzip2/BZip2Constants.java b/src/main/java/org/apache/tools/bzip2/BZip2Constants.java new file mode 100644 index 000000000..4f832d67d --- /dev/null +++ b/src/main/java/org/apache/tools/bzip2/BZip2Constants.java @@ -0,0 +1,136 @@ +/* + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2001 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, if + * any, must include the following acknowlegement: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowlegement may appear in the software itself, + * if and wherever such third-party acknowlegements normally appear. + * + * 4. The names "Ant" and "Apache Software + * Foundation" must not be used to endorse or promote products derived + * from this software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + */ + +/* + * This package is based on the work done by Keiron Liddle, Aftex Software + * to whom the Ant project is very grateful for his + * great code. + */ + +package org.apache.tools.bzip2; + +/** + * Base class for both the compress and decompress classes. + * Holds common arrays, and static data. + * + * @author Keiron Liddle + */ +public interface BZip2Constants { + + int baseBlockSize = 100000; + int MAX_ALPHA_SIZE = 258; + int MAX_CODE_LEN = 23; + int RUNA = 0; + int RUNB = 1; + int N_GROUPS = 6; + int G_SIZE = 50; + int N_ITERS = 4; + int MAX_SELECTORS = (2 + (900000 / G_SIZE)); + int NUM_OVERSHOOT_BYTES = 20; + + int[] rNums = { + 619, 720, 127, 481, 931, 816, 813, 233, 566, 247, + 985, 724, 205, 454, 863, 491, 741, 242, 949, 214, + 733, 859, 335, 708, 621, 574, 73, 654, 730, 472, + 419, 436, 278, 496, 867, 210, 399, 680, 480, 51, + 878, 465, 811, 169, 869, 675, 611, 697, 867, 561, + 862, 687, 507, 283, 482, 129, 807, 591, 733, 623, + 150, 238, 59, 379, 684, 877, 625, 169, 643, 105, + 170, 607, 520, 932, 727, 476, 693, 425, 174, 647, + 73, 122, 335, 530, 442, 853, 695, 249, 445, 515, + 909, 545, 703, 919, 874, 474, 882, 500, 594, 612, + 641, 801, 220, 162, 819, 984, 589, 513, 495, 799, + 161, 604, 958, 533, 221, 400, 386, 867, 600, 782, + 382, 596, 414, 171, 516, 375, 682, 485, 911, 276, + 98, 553, 163, 354, 666, 933, 424, 341, 533, 870, + 227, 730, 475, 186, 263, 647, 537, 686, 600, 224, + 469, 68, 770, 919, 190, 373, 294, 822, 808, 206, + 184, 943, 795, 384, 383, 461, 404, 758, 839, 887, + 715, 67, 618, 276, 204, 918, 873, 777, 604, 560, + 951, 160, 578, 722, 79, 804, 96, 409, 713, 940, + 652, 934, 970, 447, 318, 353, 859, 672, 112, 785, + 645, 863, 803, 350, 139, 93, 354, 99, 820, 908, + 609, 772, 154, 274, 580, 184, 79, 626, 630, 742, + 653, 282, 762, 623, 680, 81, 927, 626, 789, 125, + 411, 521, 938, 300, 821, 78, 343, 175, 128, 250, + 170, 774, 972, 275, 999, 639, 495, 78, 352, 126, + 857, 956, 358, 619, 580, 124, 737, 594, 701, 612, + 669, 112, 134, 694, 363, 992, 809, 743, 168, 974, + 944, 375, 748, 52, 600, 747, 642, 182, 862, 81, + 344, 805, 988, 739, 511, 655, 814, 334, 249, 515, + 897, 955, 664, 981, 649, 113, 974, 459, 893, 228, + 433, 837, 553, 268, 926, 240, 102, 654, 459, 51, + 686, 754, 806, 760, 493, 403, 415, 394, 687, 700, + 946, 670, 656, 610, 738, 392, 760, 799, 887, 653, + 978, 321, 576, 617, 626, 502, 894, 679, 243, 440, + 680, 879, 194, 572, 640, 724, 926, 56, 204, 700, + 707, 151, 457, 449, 797, 195, 791, 558, 945, 679, + 297, 59, 87, 824, 713, 663, 412, 693, 342, 606, + 134, 108, 571, 364, 631, 212, 174, 643, 304, 329, + 343, 97, 430, 751, 497, 314, 983, 374, 822, 928, + 140, 206, 73, 263, 980, 736, 876, 478, 430, 305, + 170, 514, 364, 692, 829, 82, 855, 953, 676, 246, + 369, 970, 294, 750, 807, 827, 150, 790, 288, 923, + 804, 378, 215, 828, 592, 281, 565, 555, 710, 82, + 896, 831, 547, 261, 524, 462, 293, 465, 502, 56, + 661, 821, 976, 991, 658, 869, 905, 758, 745, 193, + 768, 550, 608, 933, 378, 286, 215, 979, 792, 961, + 61, 688, 793, 644, 986, 403, 106, 366, 905, 644, + 372, 567, 466, 434, 645, 210, 389, 550, 919, 135, + 780, 773, 635, 389, 707, 100, 626, 958, 165, 504, + 920, 176, 193, 713, 857, 265, 203, 50, 668, 108, + 645, 990, 626, 197, 510, 357, 358, 850, 858, 364, + 936, 638 + }; +} diff --git a/src/main/java/org/apache/tools/bzip2/CBZip2InputStream.java b/src/main/java/org/apache/tools/bzip2/CBZip2InputStream.java new file mode 100644 index 000000000..da4c82017 --- /dev/null +++ b/src/main/java/org/apache/tools/bzip2/CBZip2InputStream.java @@ -0,0 +1,865 @@ +/* + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2001-2003 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, if + * any, must include the following acknowlegement: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowlegement may appear in the software itself, + * if and wherever such third-party acknowlegements normally appear. + * + * 4. The names "Ant" and "Apache Software + * Foundation" must not be used to endorse or promote products derived + * from this software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + */ + +/* + * This package is based on the work done by Keiron Liddle, Aftex Software + * to whom the Ant project is very grateful for his + * great code. + */ +package org.apache.tools.bzip2; + +import java.io.IOException; +import java.io.InputStream; + +/** + * An input stream that decompresses from the BZip2 format (without the file + * header chars) to be read as any other stream. + * + * @author Keiron Liddle + */ +public class CBZip2InputStream extends InputStream implements BZip2Constants { + private static void cadvise() { + System.out.println("CRC Error"); + //throw new CCoruptionError(); + } + + private static void compressedStreamEOF() { + cadvise(); + } + + private void makeMaps() { + int i; + nInUse = 0; + for (i = 0; i < 256; i++) { + if (inUse[i]) { + seqToUnseq[nInUse] = (char) i; + unseqToSeq[i] = (char) nInUse; + nInUse++; + } + } + } + + /* + index of the last char in the block, so + the block size == last + 1. + */ + private int last; + + /* + index in zptr[] of original string after sorting. + */ + private int origPtr; + + /* + always: in the range 0 .. 9. + The current block size is 100000 * this number. + */ + private int blockSize100k; + + private boolean blockRandomised; + + private int bsBuff; + private int bsLive; + private CRC mCrc = new CRC(); + + private boolean[] inUse = new boolean[256]; + private int nInUse; + + private char[] seqToUnseq = new char[256]; + private char[] unseqToSeq = new char[256]; + + private char[] selector = new char[MAX_SELECTORS]; + private char[] selectorMtf = new char[MAX_SELECTORS]; + + private int[] tt; + private char[] ll8; + + /* + freq table collected to save a pass over the data + during decompression. + */ + private int[] unzftab = new int[256]; + + private int[][] limit = new int[N_GROUPS][MAX_ALPHA_SIZE]; + private int[][] base = new int[N_GROUPS][MAX_ALPHA_SIZE]; + private int[][] perm = new int[N_GROUPS][MAX_ALPHA_SIZE]; + private int[] minLens = new int[N_GROUPS]; + + private InputStream bsStream; + + private boolean streamEnd = false; + + private int currentChar = -1; + + private static final int START_BLOCK_STATE = 1; + private static final int RAND_PART_A_STATE = 2; + private static final int RAND_PART_B_STATE = 3; + private static final int RAND_PART_C_STATE = 4; + private static final int NO_RAND_PART_A_STATE = 5; + private static final int NO_RAND_PART_B_STATE = 6; + private static final int NO_RAND_PART_C_STATE = 7; + + private int currentState = START_BLOCK_STATE; + + private int storedBlockCRC, storedCombinedCRC; + private int computedBlockCRC, computedCombinedCRC; + + int i2, count, chPrev, ch2; + int i, tPos; + int rNToGo = 0; + int rTPos = 0; + int j2; + char z; + + public CBZip2InputStream(InputStream zStream) { + ll8 = null; + tt = null; + bsSetStream(zStream); + initialize(); + initBlock(); + setupBlock(); + } + + public int read() { + if (streamEnd) { + return -1; + } else { + int retChar = currentChar; + switch(currentState) { + case START_BLOCK_STATE: + break; + case RAND_PART_A_STATE: + break; + case RAND_PART_B_STATE: + setupRandPartB(); + break; + case RAND_PART_C_STATE: + setupRandPartC(); + break; + case NO_RAND_PART_A_STATE: + break; + case NO_RAND_PART_B_STATE: + setupNoRandPartB(); + break; + case NO_RAND_PART_C_STATE: + setupNoRandPartC(); + break; + default: + break; + } + return retChar; + } + } + + private void initialize() { + char magic3, magic4; + magic3 = bsGetUChar(); + magic4 = bsGetUChar(); + if (magic3 != 'h' || magic4 < '1' || magic4 > '9') { + bsFinishedWithStream(); + streamEnd = true; + return; + } + + setDecompressStructureSizes(magic4 - '0'); + computedCombinedCRC = 0; + } + + private void initBlock() { + char magic1, magic2, magic3, magic4; + char magic5, magic6; + magic1 = bsGetUChar(); + magic2 = bsGetUChar(); + magic3 = bsGetUChar(); + magic4 = bsGetUChar(); + magic5 = bsGetUChar(); + magic6 = bsGetUChar(); + if (magic1 == 0x17 && magic2 == 0x72 && magic3 == 0x45 + && magic4 == 0x38 && magic5 == 0x50 && magic6 == 0x90) { + complete(); + return; + } + + if (magic1 != 0x31 || magic2 != 0x41 || magic3 != 0x59 + || magic4 != 0x26 || magic5 != 0x53 || magic6 != 0x59) { + badBlockHeader(); + streamEnd = true; + return; + } + + storedBlockCRC = bsGetInt32(); + + if (bsR(1) == 1) { + blockRandomised = true; + } else { + blockRandomised = false; + } + + // currBlockNo++; + getAndMoveToFrontDecode(); + + mCrc.initialiseCRC(); + currentState = START_BLOCK_STATE; + } + + private void endBlock() { + computedBlockCRC = mCrc.getFinalCRC(); + /* A bad CRC is considered a fatal error. */ + if (storedBlockCRC != computedBlockCRC) { + crcError(); + } + + computedCombinedCRC = (computedCombinedCRC << 1) + | (computedCombinedCRC >>> 31); + computedCombinedCRC ^= computedBlockCRC; + } + + private void complete() { + storedCombinedCRC = bsGetInt32(); + if (storedCombinedCRC != computedCombinedCRC) { + crcError(); + } + + bsFinishedWithStream(); + streamEnd = true; + } + + private static void blockOverrun() { + cadvise(); + } + + private static void badBlockHeader() { + cadvise(); + } + + private static void crcError() { + cadvise(); + } + + private void bsFinishedWithStream() { + try { + if (this.bsStream != null) { + if (this.bsStream != System.in) { + this.bsStream.close(); + this.bsStream = null; + } + } + } catch (IOException ioe) { + //ignore + } + } + + private void bsSetStream(InputStream f) { + bsStream = f; + bsLive = 0; + bsBuff = 0; + } + + private int bsR(int n) { + int v; + while (bsLive < n) { + int zzi; + char thech = 0; + try { + thech = (char) bsStream.read(); + } catch (IOException e) { + compressedStreamEOF(); + } + if (thech == -1) { + compressedStreamEOF(); + } + zzi = thech; + bsBuff = (bsBuff << 8) | (zzi & 0xff); + bsLive += 8; + } + + v = (bsBuff >> (bsLive - n)) & ((1 << n) - 1); + bsLive -= n; + return v; + } + + private char bsGetUChar() { + return (char) bsR(8); + } + + private int bsGetint() { + int u = 0; + u = (u << 8) | bsR(8); + u = (u << 8) | bsR(8); + u = (u << 8) | bsR(8); + u = (u << 8) | bsR(8); + return u; + } + + private int bsGetIntVS(int numBits) { + return (int) bsR(numBits); + } + + private int bsGetInt32() { + return (int) bsGetint(); + } + + private void hbCreateDecodeTables(int[] limit, int[] base, + int[] perm, char[] length, + int minLen, int maxLen, int alphaSize) { + int pp, i, j, vec; + + pp = 0; + for (i = minLen; i <= maxLen; i++) { + for (j = 0; j < alphaSize; j++) { + if (length[j] == i) { + perm[pp] = j; + pp++; + } + } + } + + for (i = 0; i < MAX_CODE_LEN; i++) { + base[i] = 0; + } + for (i = 0; i < alphaSize; i++) { + base[length[i] + 1]++; + } + + for (i = 1; i < MAX_CODE_LEN; i++) { + base[i] += base[i - 1]; + } + + for (i = 0; i < MAX_CODE_LEN; i++) { + limit[i] = 0; + } + vec = 0; + + for (i = minLen; i <= maxLen; i++) { + vec += (base[i + 1] - base[i]); + limit[i] = vec - 1; + vec <<= 1; + } + for (i = minLen + 1; i <= maxLen; i++) { + base[i] = ((limit[i - 1] + 1) << 1) - base[i]; + } + } + + private void recvDecodingTables() { + char len[][] = new char[N_GROUPS][MAX_ALPHA_SIZE]; + int i, j, t, nGroups, nSelectors, alphaSize; + int minLen, maxLen; + boolean[] inUse16 = new boolean[16]; + + /* Receive the mapping table */ + for (i = 0; i < 16; i++) { + if (bsR(1) == 1) { + inUse16[i] = true; + } else { + inUse16[i] = false; + } + } + + for (i = 0; i < 256; i++) { + inUse[i] = false; + } + + for (i = 0; i < 16; i++) { + if (inUse16[i]) { + for (j = 0; j < 16; j++) { + if (bsR(1) == 1) { + inUse[i * 16 + j] = true; + } + } + } + } + + makeMaps(); + alphaSize = nInUse + 2; + + /* Now the selectors */ + nGroups = bsR(3); + nSelectors = bsR(15); + for (i = 0; i < nSelectors; i++) { + j = 0; + while (bsR(1) == 1) { + j++; + } + selectorMtf[i] = (char) j; + } + + /* Undo the MTF values for the selectors. */ + { + char[] pos = new char[N_GROUPS]; + char tmp, v; + for (v = 0; v < nGroups; v++) { + pos[v] = v; + } + + for (i = 0; i < nSelectors; i++) { + v = selectorMtf[i]; + tmp = pos[v]; + while (v > 0) { + pos[v] = pos[v - 1]; + v--; + } + pos[0] = tmp; + selector[i] = tmp; + } + } + + /* Now the coding tables */ + for (t = 0; t < nGroups; t++) { + int curr = bsR(5); + for (i = 0; i < alphaSize; i++) { + while (bsR(1) == 1) { + if (bsR(1) == 0) { + curr++; + } else { + curr--; + } + } + len[t][i] = (char) curr; + } + } + + /* Create the Huffman decoding tables */ + for (t = 0; t < nGroups; t++) { + minLen = 32; + maxLen = 0; + for (i = 0; i < alphaSize; i++) { + if (len[t][i] > maxLen) { + maxLen = len[t][i]; + } + if (len[t][i] < minLen) { + minLen = len[t][i]; + } + } + hbCreateDecodeTables(limit[t], base[t], perm[t], len[t], minLen, + maxLen, alphaSize); + minLens[t] = minLen; + } + } + + private void getAndMoveToFrontDecode() { + char[] yy = new char[256]; + int i, j, nextSym, limitLast; + int EOB, groupNo, groupPos; + + limitLast = baseBlockSize * blockSize100k; + origPtr = bsGetIntVS(24); + + recvDecodingTables(); + EOB = nInUse + 1; + groupNo = -1; + groupPos = 0; + + /* + Setting up the unzftab entries here is not strictly + necessary, but it does save having to do it later + in a separate pass, and so saves a block's worth of + cache misses. + */ + for (i = 0; i <= 255; i++) { + unzftab[i] = 0; + } + + for (i = 0; i <= 255; i++) { + yy[i] = (char) i; + } + + last = -1; + + { + int zt, zn, zvec, zj; + if (groupPos == 0) { + groupNo++; + groupPos = G_SIZE; + } + groupPos--; + zt = selector[groupNo]; + zn = minLens[zt]; + zvec = bsR(zn); + while (zvec > limit[zt][zn]) { + zn++; + { + { + while (bsLive < 1) { + int zzi; + char thech = 0; + try { + thech = (char) bsStream.read(); + } catch (IOException e) { + compressedStreamEOF(); + } + if (thech == -1) { + compressedStreamEOF(); + } + zzi = thech; + bsBuff = (bsBuff << 8) | (zzi & 0xff); + bsLive += 8; + } + } + zj = (bsBuff >> (bsLive - 1)) & 1; + bsLive--; + } + zvec = (zvec << 1) | zj; + } + nextSym = perm[zt][zvec - base[zt][zn]]; + } + + while (true) { + + if (nextSym == EOB) { + break; + } + + if (nextSym == RUNA || nextSym == RUNB) { + char ch; + int s = -1; + int N = 1; + do { + if (nextSym == RUNA) { + s = s + (0 + 1) * N; + } else if (nextSym == RUNB) { + s = s + (1 + 1) * N; + } + N = N * 2; + { + int zt, zn, zvec, zj; + if (groupPos == 0) { + groupNo++; + groupPos = G_SIZE; + } + groupPos--; + zt = selector[groupNo]; + zn = minLens[zt]; + zvec = bsR(zn); + while (zvec > limit[zt][zn]) { + zn++; + { + { + while (bsLive < 1) { + int zzi; + char thech = 0; + try { + thech = (char) bsStream.read(); + } catch (IOException e) { + compressedStreamEOF(); + } + if (thech == -1) { + compressedStreamEOF(); + } + zzi = thech; + bsBuff = (bsBuff << 8) | (zzi & 0xff); + bsLive += 8; + } + } + zj = (bsBuff >> (bsLive - 1)) & 1; + bsLive--; + } + zvec = (zvec << 1) | zj; + } + nextSym = perm[zt][zvec - base[zt][zn]]; + } + } while (nextSym == RUNA || nextSym == RUNB); + + s++; + ch = seqToUnseq[yy[0]]; + unzftab[ch] += s; + + while (s > 0) { + last++; + ll8[last] = ch; + s--; + } + + if (last >= limitLast) { + blockOverrun(); + } + continue; + } else { + char tmp; + last++; + if (last >= limitLast) { + blockOverrun(); + } + + tmp = yy[nextSym - 1]; + unzftab[seqToUnseq[tmp]]++; + ll8[last] = seqToUnseq[tmp]; + + /* + This loop is hammered during decompression, + hence the unrolling. + + for (j = nextSym-1; j > 0; j--) yy[j] = yy[j-1]; + */ + + j = nextSym - 1; + for (; j > 3; j -= 4) { + yy[j] = yy[j - 1]; + yy[j - 1] = yy[j - 2]; + yy[j - 2] = yy[j - 3]; + yy[j - 3] = yy[j - 4]; + } + for (; j > 0; j--) { + yy[j] = yy[j - 1]; + } + + yy[0] = tmp; + { + int zt, zn, zvec, zj; + if (groupPos == 0) { + groupNo++; + groupPos = G_SIZE; + } + groupPos--; + zt = selector[groupNo]; + zn = minLens[zt]; + zvec = bsR(zn); + while (zvec > limit[zt][zn]) { + zn++; + { + { + while (bsLive < 1) { + int zzi; + char thech = 0; + try { + thech = (char) bsStream.read(); + } catch (IOException e) { + compressedStreamEOF(); + } + zzi = thech; + bsBuff = (bsBuff << 8) | (zzi & 0xff); + bsLive += 8; + } + } + zj = (bsBuff >> (bsLive - 1)) & 1; + bsLive--; + } + zvec = (zvec << 1) | zj; + } + nextSym = perm[zt][zvec - base[zt][zn]]; + } + continue; + } + } + } + + private void setupBlock() { + int[] cftab = new int[257]; + char ch; + + cftab[0] = 0; + for (i = 1; i <= 256; i++) { + cftab[i] = unzftab[i - 1]; + } + for (i = 1; i <= 256; i++) { + cftab[i] += cftab[i - 1]; + } + + for (i = 0; i <= last; i++) { + ch = (char) ll8[i]; + tt[cftab[ch]] = i; + cftab[ch]++; + } + cftab = null; + + tPos = tt[origPtr]; + + count = 0; + i2 = 0; + ch2 = 256; /* not a char and not EOF */ + + if (blockRandomised) { + rNToGo = 0; + rTPos = 0; + setupRandPartA(); + } else { + setupNoRandPartA(); + } + } + + private void setupRandPartA() { + if (i2 <= last) { + chPrev = ch2; + ch2 = ll8[tPos]; + tPos = tt[tPos]; + if (rNToGo == 0) { + rNToGo = rNums[rTPos]; + rTPos++; + if (rTPos == 512) { + rTPos = 0; + } + } + rNToGo--; + ch2 ^= (int) ((rNToGo == 1) ? 1 : 0); + i2++; + + currentChar = ch2; + currentState = RAND_PART_B_STATE; + mCrc.updateCRC(ch2); + } else { + endBlock(); + initBlock(); + setupBlock(); + } + } + + private void setupNoRandPartA() { + if (i2 <= last) { + chPrev = ch2; + ch2 = ll8[tPos]; + tPos = tt[tPos]; + i2++; + + currentChar = ch2; + currentState = NO_RAND_PART_B_STATE; + mCrc.updateCRC(ch2); + } else { + endBlock(); + initBlock(); + setupBlock(); + } + } + + private void setupRandPartB() { + if (ch2 != chPrev) { + currentState = RAND_PART_A_STATE; + count = 1; + setupRandPartA(); + } else { + count++; + if (count >= 4) { + z = ll8[tPos]; + tPos = tt[tPos]; + if (rNToGo == 0) { + rNToGo = rNums[rTPos]; + rTPos++; + if (rTPos == 512) { + rTPos = 0; + } + } + rNToGo--; + z ^= ((rNToGo == 1) ? 1 : 0); + j2 = 0; + currentState = RAND_PART_C_STATE; + setupRandPartC(); + } else { + currentState = RAND_PART_A_STATE; + setupRandPartA(); + } + } + } + + private void setupRandPartC() { + if (j2 < (int) z) { + currentChar = ch2; + mCrc.updateCRC(ch2); + j2++; + } else { + currentState = RAND_PART_A_STATE; + i2++; + count = 0; + setupRandPartA(); + } + } + + private void setupNoRandPartB() { + if (ch2 != chPrev) { + currentState = NO_RAND_PART_A_STATE; + count = 1; + setupNoRandPartA(); + } else { + count++; + if (count >= 4) { + z = ll8[tPos]; + tPos = tt[tPos]; + currentState = NO_RAND_PART_C_STATE; + j2 = 0; + setupNoRandPartC(); + } else { + currentState = NO_RAND_PART_A_STATE; + setupNoRandPartA(); + } + } + } + + private void setupNoRandPartC() { + if (j2 < (int) z) { + currentChar = ch2; + mCrc.updateCRC(ch2); + j2++; + } else { + currentState = NO_RAND_PART_A_STATE; + i2++; + count = 0; + setupNoRandPartA(); + } + } + + private void setDecompressStructureSizes(int newSize100k) { + if (!(0 <= newSize100k && newSize100k <= 9 && 0 <= blockSize100k + && blockSize100k <= 9)) { + // throw new IOException("Invalid block size"); + } + + blockSize100k = newSize100k; + + if (newSize100k == 0) { + return; + } + + int n = baseBlockSize * newSize100k; + ll8 = new char[n]; + tt = new int[n]; + } +} + diff --git a/src/main/java/org/apache/tools/bzip2/CBZip2OutputStream.java b/src/main/java/org/apache/tools/bzip2/CBZip2OutputStream.java new file mode 100644 index 000000000..521cfe70d --- /dev/null +++ b/src/main/java/org/apache/tools/bzip2/CBZip2OutputStream.java @@ -0,0 +1,1665 @@ +/* + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2001-2003 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, if + * any, must include the following acknowlegement: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowlegement may appear in the software itself, + * if and wherever such third-party acknowlegements normally appear. + * + * 4. The names "Ant" and "Apache Software + * Foundation" must not be used to endorse or promote products derived + * from this software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + */ + +/* + * This package is based on the work done by Keiron Liddle, Aftex Software + * to whom the Ant project is very grateful for his + * great code. + */ + +package org.apache.tools.bzip2; + +import java.io.IOException; +import java.io.OutputStream; + +/** + * An output stream that compresses into the BZip2 format (without the file + * header chars) into another stream. + * + * @author Keiron Liddle + * + * TODO: Update to BZip2 1.0.1 + */ +public class CBZip2OutputStream extends OutputStream implements BZip2Constants { + protected static final int SETMASK = (1 << 21); + protected static final int CLEARMASK = (~SETMASK); + protected static final int GREATER_ICOST = 15; + protected static final int LESSER_ICOST = 0; + protected static final int SMALL_THRESH = 20; + protected static final int DEPTH_THRESH = 10; + + /* + If you are ever unlucky/improbable enough + to get a stack overflow whilst sorting, + increase the following constant and try + again. In practice I have never seen the + stack go above 27 elems, so the following + limit seems very generous. + */ + protected static final int QSORT_STACK_SIZE = 1000; + + private static void panic() { + System.out.println("panic"); + //throw new CError(); + } + + private void makeMaps() { + int i; + nInUse = 0; + for (i = 0; i < 256; i++) { + if (inUse[i]) { + seqToUnseq[nInUse] = (char) i; + unseqToSeq[i] = (char) nInUse; + nInUse++; + } + } + } + + protected static void hbMakeCodeLengths(char[] len, int[] freq, + int alphaSize, int maxLen) { + /* + Nodes and heap entries run from 1. Entry 0 + for both the heap and nodes is a sentinel. + */ + int nNodes, nHeap, n1, n2, i, j, k; + boolean tooLong; + + int[] heap = new int[MAX_ALPHA_SIZE + 2]; + int[] weight = new int[MAX_ALPHA_SIZE * 2]; + int[] parent = new int[MAX_ALPHA_SIZE * 2]; + + for (i = 0; i < alphaSize; i++) { + weight[i + 1] = (freq[i] == 0 ? 1 : freq[i]) << 8; + } + + while (true) { + nNodes = alphaSize; + nHeap = 0; + + heap[0] = 0; + weight[0] = 0; + parent[0] = -2; + + for (i = 1; i <= alphaSize; i++) { + parent[i] = -1; + nHeap++; + heap[nHeap] = i; + { + int zz, tmp; + zz = nHeap; + tmp = heap[zz]; + while (weight[tmp] < weight[heap[zz >> 1]]) { + heap[zz] = heap[zz >> 1]; + zz >>= 1; + } + heap[zz] = tmp; + } + } + if (!(nHeap < (MAX_ALPHA_SIZE + 2))) { + panic(); + } + + while (nHeap > 1) { + n1 = heap[1]; + heap[1] = heap[nHeap]; + nHeap--; + { + int zz = 0, yy = 0, tmp = 0; + zz = 1; + tmp = heap[zz]; + while (true) { + yy = zz << 1; + if (yy > nHeap) { + break; + } + if (yy < nHeap + && weight[heap[yy + 1]] < weight[heap[yy]]) { + yy++; + } + if (weight[tmp] < weight[heap[yy]]) { + break; + } + heap[zz] = heap[yy]; + zz = yy; + } + heap[zz] = tmp; + } + n2 = heap[1]; + heap[1] = heap[nHeap]; + nHeap--; + { + int zz = 0, yy = 0, tmp = 0; + zz = 1; + tmp = heap[zz]; + while (true) { + yy = zz << 1; + if (yy > nHeap) { + break; + } + if (yy < nHeap + && weight[heap[yy + 1]] < weight[heap[yy]]) { + yy++; + } + if (weight[tmp] < weight[heap[yy]]) { + break; + } + heap[zz] = heap[yy]; + zz = yy; + } + heap[zz] = tmp; + } + nNodes++; + parent[n1] = parent[n2] = nNodes; + + weight[nNodes] = ((weight[n1] & 0xffffff00) + + (weight[n2] & 0xffffff00)) + | (1 + (((weight[n1] & 0x000000ff) > + (weight[n2] & 0x000000ff)) ? + (weight[n1] & 0x000000ff) : + (weight[n2] & 0x000000ff))); + + parent[nNodes] = -1; + nHeap++; + heap[nHeap] = nNodes; + { + int zz = 0, tmp = 0; + zz = nHeap; + tmp = heap[zz]; + while (weight[tmp] < weight[heap[zz >> 1]]) { + heap[zz] = heap[zz >> 1]; + zz >>= 1; + } + heap[zz] = tmp; + } + } + if (!(nNodes < (MAX_ALPHA_SIZE * 2))) { + panic(); + } + + tooLong = false; + for (i = 1; i <= alphaSize; i++) { + j = 0; + k = i; + while (parent[k] >= 0) { + k = parent[k]; + j++; + } + len[i - 1] = (char) j; + if (j > maxLen) { + tooLong = true; + } + } + + if (!tooLong) { + break; + } + + for (i = 1; i < alphaSize; i++) { + j = weight[i] >> 8; + j = 1 + (j / 2); + weight[i] = j << 8; + } + } + } + + /* + index of the last char in the block, so + the block size == last + 1. + */ + int last; + + /* + index in zptr[] of original string after sorting. + */ + int origPtr; + + /* + always: in the range 0 .. 9. + The current block size is 100000 * this number. + */ + int blockSize100k; + + boolean blockRandomised; + + int bytesOut; + int bsBuff; + int bsLive; + CRC mCrc = new CRC(); + + private boolean[] inUse = new boolean[256]; + private int nInUse; + + private char[] seqToUnseq = new char[256]; + private char[] unseqToSeq = new char[256]; + + private char[] selector = new char[MAX_SELECTORS]; + private char[] selectorMtf = new char[MAX_SELECTORS]; + + private char[] block; + private int[] quadrant; + private int[] zptr; + private short[] szptr; + private int[] ftab; + + private int nMTF; + + private int[] mtfFreq = new int[MAX_ALPHA_SIZE]; + + /* + * Used when sorting. If too many long comparisons + * happen, we stop sorting, randomise the block + * slightly, and try again. + */ + private int workFactor; + private int workDone; + private int workLimit; + private boolean firstAttempt; + private int nBlocksRandomised; + + private int currentChar = -1; + private int runLength = 0; + + public CBZip2OutputStream(OutputStream inStream) throws IOException { + this(inStream, 9); + } + + public CBZip2OutputStream(OutputStream inStream, int inBlockSize) + throws IOException { + block = null; + quadrant = null; + zptr = null; + ftab = null; + + bsSetStream(inStream); + + workFactor = 50; + if (inBlockSize > 9) { + inBlockSize = 9; + } + if (inBlockSize < 1) { + inBlockSize = 1; + } + blockSize100k = inBlockSize; + allocateCompressStructures(); + initialize(); + initBlock(); + } + + /** + * + * modified by Oliver Merkel, 010128 + * + */ + public void write(int bv) throws IOException { + int b = (256 + bv) % 256; + if (currentChar != -1) { + if (currentChar == b) { + runLength++; + if (runLength > 254) { + writeRun(); + currentChar = -1; + runLength = 0; + } + } else { + writeRun(); + runLength = 1; + currentChar = b; + } + } else { + currentChar = b; + runLength++; + } + } + + private void writeRun() throws IOException { + if (last < allowableBlockSize) { + inUse[currentChar] = true; + for (int i = 0; i < runLength; i++) { + mCrc.updateCRC((char) currentChar); + } + switch (runLength) { + case 1: + last++; + block[last + 1] = (char) currentChar; + break; + case 2: + last++; + block[last + 1] = (char) currentChar; + last++; + block[last + 1] = (char) currentChar; + break; + case 3: + last++; + block[last + 1] = (char) currentChar; + last++; + block[last + 1] = (char) currentChar; + last++; + block[last + 1] = (char) currentChar; + break; + default: + inUse[runLength - 4] = true; + last++; + block[last + 1] = (char) currentChar; + last++; + block[last + 1] = (char) currentChar; + last++; + block[last + 1] = (char) currentChar; + last++; + block[last + 1] = (char) currentChar; + last++; + block[last + 1] = (char) (runLength - 4); + break; + } + } else { + endBlock(); + initBlock(); + writeRun(); + } + } + + boolean closed = false; + + protected void finalize() throws Throwable { + close(); + super.finalize(); + } + + public void close() throws IOException { + if (closed) { + return; + } + + if (runLength > 0) { + writeRun(); + } + currentChar = -1; + endBlock(); + endCompression(); + closed = true; + super.close(); + bsStream.close(); + } + + public void flush() throws IOException { + super.flush(); + bsStream.flush(); + } + + private int blockCRC, combinedCRC; + + private void initialize() throws IOException { + bytesOut = 0; + nBlocksRandomised = 0; + + /* Write `magic' bytes h indicating file-format == huffmanised, + followed by a digit indicating blockSize100k. + */ + bsPutUChar('h'); + bsPutUChar('0' + blockSize100k); + + combinedCRC = 0; + } + + private int allowableBlockSize; + + private void initBlock() { + // blockNo++; + mCrc.initialiseCRC(); + last = -1; + // ch = 0; + + for (int i = 0; i < 256; i++) { + inUse[i] = false; + } + + /* 20 is just a paranoia constant */ + allowableBlockSize = baseBlockSize * blockSize100k - 20; + } + + private void endBlock() throws IOException { + blockCRC = mCrc.getFinalCRC(); + combinedCRC = (combinedCRC << 1) | (combinedCRC >>> 31); + combinedCRC ^= blockCRC; + + /* sort the block and establish posn of original string */ + doReversibleTransformation(); + + /* + A 6-byte block header, the value chosen arbitrarily + as 0x314159265359 :-). A 32 bit value does not really + give a strong enough guarantee that the value will not + appear by chance in the compressed datastream. Worst-case + probability of this event, for a 900k block, is about + 2.0e-3 for 32 bits, 1.0e-5 for 40 bits and 4.0e-8 for 48 bits. + For a compressed file of size 100Gb -- about 100000 blocks -- + only a 48-bit marker will do. NB: normal compression/ + decompression do *not* rely on these statistical properties. + They are only important when trying to recover blocks from + damaged files. + */ + bsPutUChar(0x31); + bsPutUChar(0x41); + bsPutUChar(0x59); + bsPutUChar(0x26); + bsPutUChar(0x53); + bsPutUChar(0x59); + + /* Now the block's CRC, so it is in a known place. */ + bsPutint(blockCRC); + + /* Now a single bit indicating randomisation. */ + if (blockRandomised) { + bsW(1, 1); + nBlocksRandomised++; + } else { + bsW(1, 0); + } + + /* Finally, block's contents proper. */ + moveToFrontCodeAndSend(); + } + + private void endCompression() throws IOException { + /* + Now another magic 48-bit number, 0x177245385090, to + indicate the end of the last block. (sqrt(pi), if + you want to know. I did want to use e, but it contains + too much repetition -- 27 18 28 18 28 46 -- for me + to feel statistically comfortable. Call me paranoid.) + */ + bsPutUChar(0x17); + bsPutUChar(0x72); + bsPutUChar(0x45); + bsPutUChar(0x38); + bsPutUChar(0x50); + bsPutUChar(0x90); + + bsPutint(combinedCRC); + + bsFinishedWithStream(); + } + + private void hbAssignCodes (int[] code, char[] length, int minLen, + int maxLen, int alphaSize) { + int n, vec, i; + + vec = 0; + for (n = minLen; n <= maxLen; n++) { + for (i = 0; i < alphaSize; i++) { + if (length[i] == n) { + code[i] = vec; + vec++; + } + }; + vec <<= 1; + } + } + + private void bsSetStream(OutputStream f) { + bsStream = f; + bsLive = 0; + bsBuff = 0; + bytesOut = 0; + } + + private void bsFinishedWithStream() throws IOException { + while (bsLive > 0) { + int ch = (bsBuff >> 24); + try { + bsStream.write(ch); // write 8-bit + } catch (IOException e) { + throw e; + } + bsBuff <<= 8; + bsLive -= 8; + bytesOut++; + } + } + + private void bsW(int n, int v) throws IOException { + while (bsLive >= 8) { + int ch = (bsBuff >> 24); + try { + bsStream.write(ch); // write 8-bit + } catch (IOException e) { + throw e; + } + bsBuff <<= 8; + bsLive -= 8; + bytesOut++; + } + bsBuff |= (v << (32 - bsLive - n)); + bsLive += n; + } + + private void bsPutUChar(int c) throws IOException { + bsW(8, c); + } + + private void bsPutint(int u) throws IOException { + bsW(8, (u >> 24) & 0xff); + bsW(8, (u >> 16) & 0xff); + bsW(8, (u >> 8) & 0xff); + bsW(8, u & 0xff); + } + + private void bsPutIntVS(int numBits, int c) throws IOException { + bsW(numBits, c); + } + + private void sendMTFValues() throws IOException { + char len[][] = new char[N_GROUPS][MAX_ALPHA_SIZE]; + + int v, t, i, j, gs, ge, totc, bt, bc, iter; + int nSelectors = 0, alphaSize, minLen, maxLen, selCtr; + int nGroups; + + alphaSize = nInUse + 2; + for (t = 0; t < N_GROUPS; t++) { + for (v = 0; v < alphaSize; v++) { + len[t][v] = (char) GREATER_ICOST; + } + } + + /* Decide how many coding tables to use */ + if (nMTF <= 0) { + panic(); + } + + if (nMTF < 200) { + nGroups = 2; + } else if (nMTF < 600) { + nGroups = 3; + } else if (nMTF < 1200) { + nGroups = 4; + } else if (nMTF < 2400) { + nGroups = 5; + } else { + nGroups = 6; + } + + /* Generate an initial set of coding tables */ { + int nPart, remF, tFreq, aFreq; + + nPart = nGroups; + remF = nMTF; + gs = 0; + while (nPart > 0) { + tFreq = remF / nPart; + ge = gs - 1; + aFreq = 0; + while (aFreq < tFreq && ge < alphaSize - 1) { + ge++; + aFreq += mtfFreq[ge]; + } + + if (ge > gs && nPart != nGroups && nPart != 1 + && ((nGroups - nPart) % 2 == 1)) { + aFreq -= mtfFreq[ge]; + ge--; + } + + for (v = 0; v < alphaSize; v++) { + if (v >= gs && v <= ge) { + len[nPart - 1][v] = (char) LESSER_ICOST; + } else { + len[nPart - 1][v] = (char) GREATER_ICOST; + } + } + + nPart--; + gs = ge + 1; + remF -= aFreq; + } + } + + int[][] rfreq = new int[N_GROUPS][MAX_ALPHA_SIZE]; + int[] fave = new int[N_GROUPS]; + short[] cost = new short[N_GROUPS]; + /* + Iterate up to N_ITERS times to improve the tables. + */ + for (iter = 0; iter < N_ITERS; iter++) { + for (t = 0; t < nGroups; t++) { + fave[t] = 0; + } + + for (t = 0; t < nGroups; t++) { + for (v = 0; v < alphaSize; v++) { + rfreq[t][v] = 0; + } + } + + nSelectors = 0; + totc = 0; + gs = 0; + while (true) { + + /* Set group start & end marks. */ + if (gs >= nMTF) { + break; + } + ge = gs + G_SIZE - 1; + if (ge >= nMTF) { + ge = nMTF - 1; + } + + /* + Calculate the cost of this group as coded + by each of the coding tables. + */ + for (t = 0; t < nGroups; t++) { + cost[t] = 0; + } + + if (nGroups == 6) { + short cost0, cost1, cost2, cost3, cost4, cost5; + cost0 = cost1 = cost2 = cost3 = cost4 = cost5 = 0; + for (i = gs; i <= ge; i++) { + short icv = szptr[i]; + cost0 += len[0][icv]; + cost1 += len[1][icv]; + cost2 += len[2][icv]; + cost3 += len[3][icv]; + cost4 += len[4][icv]; + cost5 += len[5][icv]; + } + cost[0] = cost0; + cost[1] = cost1; + cost[2] = cost2; + cost[3] = cost3; + cost[4] = cost4; + cost[5] = cost5; + } else { + for (i = gs; i <= ge; i++) { + short icv = szptr[i]; + for (t = 0; t < nGroups; t++) { + cost[t] += len[t][icv]; + } + } + } + + /* + Find the coding table which is best for this group, + and record its identity in the selector table. + */ + bc = 999999999; + bt = -1; + for (t = 0; t < nGroups; t++) { + if (cost[t] < bc) { + bc = cost[t]; + bt = t; + } + }; + totc += bc; + fave[bt]++; + selector[nSelectors] = (char) bt; + nSelectors++; + + /* + Increment the symbol frequencies for the selected table. + */ + for (i = gs; i <= ge; i++) { + rfreq[bt][szptr[i]]++; + } + + gs = ge + 1; + } + + /* + Recompute the tables based on the accumulated frequencies. + */ + for (t = 0; t < nGroups; t++) { + hbMakeCodeLengths(len[t], rfreq[t], alphaSize, 20); + } + } + + rfreq = null; + fave = null; + cost = null; + + if (!(nGroups < 8)) { + panic(); + } + if (!(nSelectors < 32768 && nSelectors <= (2 + (900000 / G_SIZE)))) { + panic(); + } + + + /* Compute MTF values for the selectors. */ + { + char[] pos = new char[N_GROUPS]; + char ll_i, tmp2, tmp; + for (i = 0; i < nGroups; i++) { + pos[i] = (char) i; + } + for (i = 0; i < nSelectors; i++) { + ll_i = selector[i]; + j = 0; + tmp = pos[j]; + while (ll_i != tmp) { + j++; + tmp2 = tmp; + tmp = pos[j]; + pos[j] = tmp2; + } + pos[0] = tmp; + selectorMtf[i] = (char) j; + } + } + + int[][] code = new int[N_GROUPS][MAX_ALPHA_SIZE]; + + /* Assign actual codes for the tables. */ + for (t = 0; t < nGroups; t++) { + minLen = 32; + maxLen = 0; + for (i = 0; i < alphaSize; i++) { + if (len[t][i] > maxLen) { + maxLen = len[t][i]; + } + if (len[t][i] < minLen) { + minLen = len[t][i]; + } + } + if (maxLen > 20) { + panic(); + } + if (minLen < 1) { + panic(); + } + hbAssignCodes(code[t], len[t], minLen, maxLen, alphaSize); + } + + /* Transmit the mapping table. */ + { + boolean[] inUse16 = new boolean[16]; + for (i = 0; i < 16; i++) { + inUse16[i] = false; + for (j = 0; j < 16; j++) { + if (inUse[i * 16 + j]) { + inUse16[i] = true; + } + } + } + + for (i = 0; i < 16; i++) { + if (inUse16[i]) { + bsW(1, 1); + } else { + bsW(1, 0); + } + } + + for (i = 0; i < 16; i++) { + if (inUse16[i]) { + for (j = 0; j < 16; j++) { + if (inUse[i * 16 + j]) { + bsW(1, 1); + } else { + bsW(1, 0); + } + } + } + } + + } + + /* Now the selectors. */ + bsW (3, nGroups); + bsW (15, nSelectors); + for (i = 0; i < nSelectors; i++) { + for (j = 0; j < selectorMtf[i]; j++) { + bsW(1, 1); + } + bsW(1, 0); + } + + /* Now the coding tables. */ + for (t = 0; t < nGroups; t++) { + int curr = len[t][0]; + bsW(5, curr); + for (i = 0; i < alphaSize; i++) { + while (curr < len[t][i]) { + bsW(2, 2); + curr++; /* 10 */ + } + while (curr > len[t][i]) { + bsW(2, 3); + curr--; /* 11 */ + } + bsW (1, 0); + } + } + + /* And finally, the block data proper */ + selCtr = 0; + gs = 0; + while (true) { + if (gs >= nMTF) { + break; + } + ge = gs + G_SIZE - 1; + if (ge >= nMTF) { + ge = nMTF - 1; + } + for (i = gs; i <= ge; i++) { + bsW(len[selector[selCtr]][szptr[i]], + code[selector[selCtr]][szptr[i]]); + } + + gs = ge + 1; + selCtr++; + } + if (!(selCtr == nSelectors)) { + panic(); + } + } + + private void moveToFrontCodeAndSend () throws IOException { + bsPutIntVS(24, origPtr); + generateMTFValues(); + sendMTFValues(); + } + + private OutputStream bsStream; + + private void simpleSort(int lo, int hi, int d) { + int i, j, h, bigN, hp; + int v; + + bigN = hi - lo + 1; + if (bigN < 2) { + return; + } + + hp = 0; + while (incs[hp] < bigN) { + hp++; + } + hp--; + + for (; hp >= 0; hp--) { + h = incs[hp]; + + i = lo + h; + while (true) { + /* copy 1 */ + if (i > hi) { + break; + } + v = zptr[i]; + j = i; + while (fullGtU(zptr[j - h] + d, v + d)) { + zptr[j] = zptr[j - h]; + j = j - h; + if (j <= (lo + h - 1)) { + break; + } + } + zptr[j] = v; + i++; + + /* copy 2 */ + if (i > hi) { + break; + } + v = zptr[i]; + j = i; + while (fullGtU(zptr[j - h] + d, v + d)) { + zptr[j] = zptr[j - h]; + j = j - h; + if (j <= (lo + h - 1)) { + break; + } + } + zptr[j] = v; + i++; + + /* copy 3 */ + if (i > hi) { + break; + } + v = zptr[i]; + j = i; + while (fullGtU(zptr[j - h] + d, v + d)) { + zptr[j] = zptr[j - h]; + j = j - h; + if (j <= (lo + h - 1)) { + break; + } + } + zptr[j] = v; + i++; + + if (workDone > workLimit && firstAttempt) { + return; + } + } + } + } + + private void vswap(int p1, int p2, int n) { + int temp = 0; + while (n > 0) { + temp = zptr[p1]; + zptr[p1] = zptr[p2]; + zptr[p2] = temp; + p1++; + p2++; + n--; + } + } + + private char med3(char a, char b, char c) { + char t; + if (a > b) { + t = a; + a = b; + b = t; + } + if (b > c) { + t = b; + b = c; + c = t; + } + if (a > b) { + b = a; + } + return b; + } + + private static class StackElem { + int ll; + int hh; + int dd; + } + + private void qSort3(int loSt, int hiSt, int dSt) { + int unLo, unHi, ltLo, gtHi, med, n, m; + int sp, lo, hi, d; + StackElem[] stack = new StackElem[QSORT_STACK_SIZE]; + for (int count = 0; count < QSORT_STACK_SIZE; count++) { + stack[count] = new StackElem(); + } + + sp = 0; + + stack[sp].ll = loSt; + stack[sp].hh = hiSt; + stack[sp].dd = dSt; + sp++; + + while (sp > 0) { + if (sp >= QSORT_STACK_SIZE) { + panic(); + } + + sp--; + lo = stack[sp].ll; + hi = stack[sp].hh; + d = stack[sp].dd; + + if (hi - lo < SMALL_THRESH || d > DEPTH_THRESH) { + simpleSort(lo, hi, d); + if (workDone > workLimit && firstAttempt) { + return; + } + continue; + } + + med = med3(block[zptr[lo] + d + 1], + block[zptr[hi ] + d + 1], + block[zptr[(lo + hi) >> 1] + d + 1]); + + unLo = ltLo = lo; + unHi = gtHi = hi; + + while (true) { + while (true) { + if (unLo > unHi) { + break; + } + n = ((int) block[zptr[unLo] + d + 1]) - med; + if (n == 0) { + int temp = 0; + temp = zptr[unLo]; + zptr[unLo] = zptr[ltLo]; + zptr[ltLo] = temp; + ltLo++; + unLo++; + continue; + }; + if (n > 0) { + break; + } + unLo++; + } + while (true) { + if (unLo > unHi) { + break; + } + n = ((int) block[zptr[unHi] + d + 1]) - med; + if (n == 0) { + int temp = 0; + temp = zptr[unHi]; + zptr[unHi] = zptr[gtHi]; + zptr[gtHi] = temp; + gtHi--; + unHi--; + continue; + }; + if (n < 0) { + break; + } + unHi--; + } + if (unLo > unHi) { + break; + } + int temp = 0; + temp = zptr[unLo]; + zptr[unLo] = zptr[unHi]; + zptr[unHi] = temp; + unLo++; + unHi--; + } + + if (gtHi < ltLo) { + stack[sp].ll = lo; + stack[sp].hh = hi; + stack[sp].dd = d + 1; + sp++; + continue; + } + + n = ((ltLo - lo) < (unLo - ltLo)) ? (ltLo - lo) : (unLo - ltLo); + vswap(lo, unLo - n, n); + m = ((hi - gtHi) < (gtHi - unHi)) ? (hi - gtHi) : (gtHi - unHi); + vswap(unLo, hi - m + 1, m); + + n = lo + unLo - ltLo - 1; + m = hi - (gtHi - unHi) + 1; + + stack[sp].ll = lo; + stack[sp].hh = n; + stack[sp].dd = d; + sp++; + + stack[sp].ll = n + 1; + stack[sp].hh = m - 1; + stack[sp].dd = d + 1; + sp++; + + stack[sp].ll = m; + stack[sp].hh = hi; + stack[sp].dd = d; + sp++; + } + } + + private void mainSort() { + int i, j, ss, sb; + int[] runningOrder = new int[256]; + int[] copy = new int[256]; + boolean[] bigDone = new boolean[256]; + int c1, c2; + int numQSorted; + + /* + In the various block-sized structures, live data runs + from 0 to last+NUM_OVERSHOOT_BYTES inclusive. First, + set up the overshoot area for block. + */ + + // if (verbosity >= 4) fprintf ( stderr, " sort initialise ...\n" ); + for (i = 0; i < NUM_OVERSHOOT_BYTES; i++) { + block[last + i + 2] = block[(i % (last + 1)) + 1]; + } + for (i = 0; i <= last + NUM_OVERSHOOT_BYTES; i++) { + quadrant[i] = 0; + } + + block[0] = (char) (block[last + 1]); + + if (last < 4000) { + /* + Use simpleSort(), since the full sorting mechanism + has quite a large constant overhead. + */ + for (i = 0; i <= last; i++) { + zptr[i] = i; + } + firstAttempt = false; + workDone = workLimit = 0; + simpleSort(0, last, 0); + } else { + numQSorted = 0; + for (i = 0; i <= 255; i++) { + bigDone[i] = false; + } + + for (i = 0; i <= 65536; i++) { + ftab[i] = 0; + } + + c1 = block[0]; + for (i = 0; i <= last; i++) { + c2 = block[i + 1]; + ftab[(c1 << 8) + c2]++; + c1 = c2; + } + + for (i = 1; i <= 65536; i++) { + ftab[i] += ftab[i - 1]; + } + + c1 = block[1]; + for (i = 0; i < last; i++) { + c2 = block[i + 2]; + j = (c1 << 8) + c2; + c1 = c2; + ftab[j]--; + zptr[ftab[j]] = i; + } + + j = ((block[last + 1]) << 8) + (block[1]); + ftab[j]--; + zptr[ftab[j]] = last; + + /* + Now ftab contains the first loc of every small bucket. + Calculate the running order, from smallest to largest + big bucket. + */ + + for (i = 0; i <= 255; i++) { + runningOrder[i] = i; + } + + { + int vv; + int h = 1; + do { + h = 3 * h + 1; + } + while (h <= 256); + do { + h = h / 3; + for (i = h; i <= 255; i++) { + vv = runningOrder[i]; + j = i; + while ((ftab[((runningOrder[j - h]) + 1) << 8] + - ftab[(runningOrder[j - h]) << 8]) > + (ftab[((vv) + 1) << 8] - ftab[(vv) << 8])) { + runningOrder[j] = runningOrder[j - h]; + j = j - h; + if (j <= (h - 1)) { + break; + } + } + runningOrder[j] = vv; + } + } while (h != 1); + } + + /* + The main sorting loop. + */ + for (i = 0; i <= 255; i++) { + + /* + Process big buckets, starting with the least full. + */ + ss = runningOrder[i]; + + /* + Complete the big bucket [ss] by quicksorting + any unsorted small buckets [ss, j]. Hopefully + previous pointer-scanning phases have already + completed many of the small buckets [ss, j], so + we don't have to sort them at all. + */ + for (j = 0; j <= 255; j++) { + sb = (ss << 8) + j; + if (!((ftab[sb] & SETMASK) == SETMASK)) { + int lo = ftab[sb] & CLEARMASK; + int hi = (ftab[sb + 1] & CLEARMASK) - 1; + if (hi > lo) { + qSort3(lo, hi, 2); + numQSorted += (hi - lo + 1); + if (workDone > workLimit && firstAttempt) { + return; + } + } + ftab[sb] |= SETMASK; + } + } + + /* + The ss big bucket is now done. Record this fact, + and update the quadrant descriptors. Remember to + update quadrants in the overshoot area too, if + necessary. The "if (i < 255)" test merely skips + this updating for the last bucket processed, since + updating for the last bucket is pointless. + */ + bigDone[ss] = true; + + if (i < 255) { + int bbStart = ftab[ss << 8] & CLEARMASK; + int bbSize = (ftab[(ss + 1) << 8] & CLEARMASK) - bbStart; + int shifts = 0; + + while ((bbSize >> shifts) > 65534) { + shifts++; + } + + for (j = 0; j < bbSize; j++) { + int a2update = zptr[bbStart + j]; + int qVal = (j >> shifts); + quadrant[a2update] = qVal; + if (a2update < NUM_OVERSHOOT_BYTES) { + quadrant[a2update + last + 1] = qVal; + } + } + + if (!(((bbSize - 1) >> shifts) <= 65535)) { + panic(); + } + } + + /* + Now scan this big bucket so as to synthesise the + sorted order for small buckets [t, ss] for all t != ss. + */ + for (j = 0; j <= 255; j++) { + copy[j] = ftab[(j << 8) + ss] & CLEARMASK; + } + + for (j = ftab[ss << 8] & CLEARMASK; + j < (ftab[(ss + 1) << 8] & CLEARMASK); j++) { + c1 = block[zptr[j]]; + if (!bigDone[c1]) { + zptr[copy[c1]] = zptr[j] == 0 ? last : zptr[j] - 1; + copy[c1]++; + } + } + + for (j = 0; j <= 255; j++) { + ftab[(j << 8) + ss] |= SETMASK; + } + } + } + } + + private void randomiseBlock() { + int i; + int rNToGo = 0; + int rTPos = 0; + for (i = 0; i < 256; i++) { + inUse[i] = false; + } + + for (i = 0; i <= last; i++) { + if (rNToGo == 0) { + rNToGo = (char) rNums[rTPos]; + rTPos++; + if (rTPos == 512) { + rTPos = 0; + } + } + rNToGo--; + block[i + 1] ^= ((rNToGo == 1) ? 1 : 0); + // handle 16 bit signed numbers + block[i + 1] &= 0xFF; + + inUse[block[i + 1]] = true; + } + } + + private void doReversibleTransformation() { + int i; + + workLimit = workFactor * last; + workDone = 0; + blockRandomised = false; + firstAttempt = true; + + mainSort(); + + if (workDone > workLimit && firstAttempt) { + randomiseBlock(); + workLimit = workDone = 0; + blockRandomised = true; + firstAttempt = false; + mainSort(); + } + + origPtr = -1; + for (i = 0; i <= last; i++) { + if (zptr[i] == 0) { + origPtr = i; + break; + } + }; + + if (origPtr == -1) { + panic(); + } + } + + private boolean fullGtU(int i1, int i2) { + int k; + char c1, c2; + int s1, s2; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) { + return (c1 > c2); + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) { + return (c1 > c2); + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) { + return (c1 > c2); + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) { + return (c1 > c2); + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) { + return (c1 > c2); + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) { + return (c1 > c2); + } + i1++; + i2++; + + k = last + 1; + + do { + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) { + return (c1 > c2); + } + s1 = quadrant[i1]; + s2 = quadrant[i2]; + if (s1 != s2) { + return (s1 > s2); + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) { + return (c1 > c2); + } + s1 = quadrant[i1]; + s2 = quadrant[i2]; + if (s1 != s2) { + return (s1 > s2); + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) { + return (c1 > c2); + } + s1 = quadrant[i1]; + s2 = quadrant[i2]; + if (s1 != s2) { + return (s1 > s2); + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) { + return (c1 > c2); + } + s1 = quadrant[i1]; + s2 = quadrant[i2]; + if (s1 != s2) { + return (s1 > s2); + } + i1++; + i2++; + + if (i1 > last) { + i1 -= last; + i1--; + }; + if (i2 > last) { + i2 -= last; + i2--; + }; + + k -= 4; + workDone++; + } while (k >= 0); + + return false; + } + + /* + Knuth's increments seem to work better + than Incerpi-Sedgewick here. Possibly + because the number of elems to sort is + usually small, typically <= 20. + */ + private int[] incs = { 1, 4, 13, 40, 121, 364, 1093, 3280, + 9841, 29524, 88573, 265720, + 797161, 2391484 }; + + private void allocateCompressStructures () { + int n = baseBlockSize * blockSize100k; + block = new char[(n + 1 + NUM_OVERSHOOT_BYTES)]; + quadrant = new int[(n + NUM_OVERSHOOT_BYTES)]; + zptr = new int[n]; + ftab = new int[65537]; + + if (block == null || quadrant == null || zptr == null + || ftab == null) { + //int totalDraw = (n + 1 + NUM_OVERSHOOT_BYTES) + (n + NUM_OVERSHOOT_BYTES) + n + 65537; + //compressOutOfMemory ( totalDraw, n ); + } + + /* + The back end needs a place to store the MTF values + whilst it calculates the coding tables. We could + put them in the zptr array. However, these values + will fit in a short, so we overlay szptr at the + start of zptr, in the hope of reducing the number + of cache misses induced by the multiple traversals + of the MTF values when calculating coding tables. + Seems to improve compression speed by about 1%. + */ + // szptr = zptr; + + + szptr = new short[2 * n]; + } + + private void generateMTFValues() { + char[] yy = new char[256]; + int i, j; + char tmp; + char tmp2; + int zPend; + int wr; + int EOB; + + makeMaps(); + EOB = nInUse + 1; + + for (i = 0; i <= EOB; i++) { + mtfFreq[i] = 0; + } + + wr = 0; + zPend = 0; + for (i = 0; i < nInUse; i++) { + yy[i] = (char) i; + } + + + for (i = 0; i <= last; i++) { + char ll_i; + + ll_i = unseqToSeq[block[zptr[i]]]; + + j = 0; + tmp = yy[j]; + while (ll_i != tmp) { + j++; + tmp2 = tmp; + tmp = yy[j]; + yy[j] = tmp2; + }; + yy[0] = tmp; + + if (j == 0) { + zPend++; + } else { + if (zPend > 0) { + zPend--; + while (true) { + switch (zPend % 2) { + case 0: + szptr[wr] = (short) RUNA; + wr++; + mtfFreq[RUNA]++; + break; + case 1: + szptr[wr] = (short) RUNB; + wr++; + mtfFreq[RUNB]++; + break; + }; + if (zPend < 2) { + break; + } + zPend = (zPend - 2) / 2; + }; + zPend = 0; + } + szptr[wr] = (short) (j + 1); + wr++; + mtfFreq[j + 1]++; + } + } + + if (zPend > 0) { + zPend--; + while (true) { + switch (zPend % 2) { + case 0: + szptr[wr] = (short) RUNA; + wr++; + mtfFreq[RUNA]++; + break; + case 1: + szptr[wr] = (short) RUNB; + wr++; + mtfFreq[RUNB]++; + break; + } + if (zPend < 2) { + break; + } + zPend = (zPend - 2) / 2; + } + } + + szptr[wr] = (short) EOB; + wr++; + mtfFreq[EOB]++; + + nMTF = wr; + } +} + + diff --git a/src/main/java/org/apache/tools/bzip2/CRC.java b/src/main/java/org/apache/tools/bzip2/CRC.java new file mode 100644 index 000000000..bc8bc644b --- /dev/null +++ b/src/main/java/org/apache/tools/bzip2/CRC.java @@ -0,0 +1,167 @@ +/* + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2001-2002 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, if + * any, must include the following acknowlegement: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowlegement may appear in the software itself, + * if and wherever such third-party acknowlegements normally appear. + * + * 4. The names "Ant" and "Apache Software + * Foundation" must not be used to endorse or promote products derived + * from this software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + */ + +/* + * This package is based on the work done by Keiron Liddle, Aftex Software + * to whom the Ant project is very grateful for his + * great code. + */ + +package org.apache.tools.bzip2; + +/** + * A simple class the hold and calculate the CRC for sanity checking + * of the data. + * + * @author Keiron Liddle + */ +class CRC { + public static int crc32Table[] = { + 0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9, + 0x130476dc, 0x17c56b6b, 0x1a864db2, 0x1e475005, + 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61, + 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd, + 0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9, + 0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75, + 0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011, + 0x791d4014, 0x7ddc5da3, 0x709f7b7a, 0x745e66cd, + 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039, + 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, + 0xbe2b5b58, 0xbaea46ef, 0xb7a96036, 0xb3687d81, + 0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d, + 0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49, + 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95, + 0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, + 0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, + 0x34867077, 0x30476dc0, 0x3d044b19, 0x39c556ae, + 0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072, + 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16, + 0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca, + 0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde, + 0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02, + 0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1, 0x53dc6066, + 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba, + 0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, + 0xbfa1b04b, 0xbb60adfc, 0xb6238b25, 0xb2e29692, + 0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6, + 0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a, + 0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e, + 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2, + 0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686, + 0xd5b88683, 0xd1799b34, 0xdc3abded, 0xd8fba05a, + 0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637, + 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb, + 0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f, + 0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53, + 0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47, + 0x36194d42, 0x32d850f5, 0x3f9b762c, 0x3b5a6b9b, + 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff, + 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, + 0xf12f560e, 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7, + 0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b, + 0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f, + 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3, + 0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, + 0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, + 0x9b3660c6, 0x9ff77d71, 0x92b45ba8, 0x9675461f, + 0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3, + 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640, + 0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c, + 0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8, + 0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24, + 0x119b4be9, 0x155a565e, 0x18197087, 0x1cd86d30, + 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec, + 0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, + 0x2497d08d, 0x2056cd3a, 0x2d15ebe3, 0x29d4f654, + 0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0, + 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c, + 0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18, + 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4, + 0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0, + 0x9abc8bd5, 0x9e7d9662, 0x933eb0bb, 0x97ffad0c, + 0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668, + 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4 + }; + + public CRC() { + initialiseCRC(); + } + + void initialiseCRC() { + globalCrc = 0xffffffff; + } + + int getFinalCRC() { + return ~globalCrc; + } + + int getGlobalCRC() { + return globalCrc; + } + + void setGlobalCRC(int newCrc) { + globalCrc = newCrc; + } + + void updateCRC(int inCh) { + int temp = (globalCrc >> 24) ^ inCh; + if (temp < 0) { + temp = 256 + temp; + } + globalCrc = (globalCrc << 8) ^ CRC.crc32Table[temp]; + } + + int globalCrc; +} +