From 98f13065912fd09ab32413c57a963bbda0b1c8fd Mon Sep 17 00:00:00 2001 From: Vitor Hideyoshi Date: Sat, 24 Oct 2020 12:38:41 -0300 Subject: [PATCH] v1.3.3 --- yoshi-seals1.3.3/.vscode/launch.json | 15 + yoshi-seals1.3.3/.vscode/settings.json | 3 + yoshi-seals1.3.3/LICENSE | 278 ++++++++++++++++++ yoshi-seals1.3.3/README.md | 55 ++++ yoshi-seals1.3.3/Seals/__init__.py | 18 ++ .../Seals/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 184 bytes yoshi-seals1.3.3/Seals/eigen/__init__.py | 20 ++ .../eigen/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 218 bytes .../eigen/__pycache__/eigen.cpython-37.pyc | Bin 0 -> 650 bytes yoshi-seals1.3.3/Seals/eigen/eigen.py | 64 ++++ yoshi-seals1.3.3/Seals/insert/__init__.py | 21 ++ .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 257 bytes .../insert/__pycache__/insert.cpython-37.pyc | Bin 0 -> 688 bytes yoshi-seals1.3.3/Seals/insert/insert.py | 46 +++ yoshi-seals1.3.3/Seals/process/__init__.py | 25 ++ .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 386 bytes .../__pycache__/process.cpython-37.pyc | Bin 0 -> 2597 bytes yoshi-seals1.3.3/Seals/process/process.py | 203 +++++++++++++ yoshi-seals1.3.3/Seals/scan/__init__.py | 21 ++ .../scan/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 260 bytes .../scan/__pycache__/scan.cpython-37.pyc | Bin 0 -> 641 bytes yoshi-seals1.3.3/Seals/scan/scan.py | 45 +++ yoshi-seals1.3.3/Seals/write/__init__.py | 21 ++ .../write/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 262 bytes .../write/__pycache__/write.cpython-37.pyc | Bin 0 -> 596 bytes yoshi-seals1.3.3/Seals/write/write.py | 33 +++ yoshi-seals1.3.3/build/lib/Seals/__init__.py | 18 ++ .../build/lib/Seals/eigen/__init__.py | 20 ++ .../build/lib/Seals/eigen/eigen.py | 64 ++++ .../build/lib/Seals/insert/__init__.py | 21 ++ .../build/lib/Seals/insert/insert.py | 46 +++ .../build/lib/Seals/process/__init__.py | 25 ++ .../build/lib/Seals/process/process.py | 203 +++++++++++++ .../build/lib/Seals/scan/__init__.py | 21 ++ yoshi-seals1.3.3/build/lib/Seals/scan/scan.py | 45 +++ .../build/lib/Seals/write/__init__.py | 21 ++ .../build/lib/Seals/write/write.py | 33 +++ .../dist/yoshi-seals-1.3.3.tar.gz | Bin 0 -> 6236 bytes .../dist/yoshi_seals-1.3.3-py3-none-any.whl | Bin 0 -> 17566 bytes yoshi-seals1.3.3/setup.py | 26 ++ .../yoshi_seals.egg-info/PKG-INFO | 70 +++++ .../yoshi_seals.egg-info/SOURCES.txt | 18 ++ .../yoshi_seals.egg-info/dependency_links.txt | 1 + .../yoshi_seals.egg-info/requires.txt | 2 + .../yoshi_seals.egg-info/top_level.txt | 1 + 45 files changed, 1503 insertions(+) create mode 100644 yoshi-seals1.3.3/.vscode/launch.json create mode 100644 yoshi-seals1.3.3/.vscode/settings.json create mode 100644 yoshi-seals1.3.3/LICENSE create mode 100644 yoshi-seals1.3.3/README.md create mode 100644 yoshi-seals1.3.3/Seals/__init__.py create mode 100644 yoshi-seals1.3.3/Seals/__pycache__/__init__.cpython-37.pyc create mode 100644 yoshi-seals1.3.3/Seals/eigen/__init__.py create mode 100644 yoshi-seals1.3.3/Seals/eigen/__pycache__/__init__.cpython-37.pyc create mode 100644 yoshi-seals1.3.3/Seals/eigen/__pycache__/eigen.cpython-37.pyc create mode 100644 yoshi-seals1.3.3/Seals/eigen/eigen.py create mode 100644 yoshi-seals1.3.3/Seals/insert/__init__.py create mode 100644 yoshi-seals1.3.3/Seals/insert/__pycache__/__init__.cpython-37.pyc create mode 100644 yoshi-seals1.3.3/Seals/insert/__pycache__/insert.cpython-37.pyc create mode 100644 yoshi-seals1.3.3/Seals/insert/insert.py create mode 100644 yoshi-seals1.3.3/Seals/process/__init__.py create mode 100644 yoshi-seals1.3.3/Seals/process/__pycache__/__init__.cpython-37.pyc create mode 100644 yoshi-seals1.3.3/Seals/process/__pycache__/process.cpython-37.pyc create mode 100644 yoshi-seals1.3.3/Seals/process/process.py create mode 100644 yoshi-seals1.3.3/Seals/scan/__init__.py create mode 100644 yoshi-seals1.3.3/Seals/scan/__pycache__/__init__.cpython-37.pyc create mode 100644 yoshi-seals1.3.3/Seals/scan/__pycache__/scan.cpython-37.pyc create mode 100644 yoshi-seals1.3.3/Seals/scan/scan.py create mode 100644 yoshi-seals1.3.3/Seals/write/__init__.py create mode 100644 yoshi-seals1.3.3/Seals/write/__pycache__/__init__.cpython-37.pyc create mode 100644 yoshi-seals1.3.3/Seals/write/__pycache__/write.cpython-37.pyc create mode 100644 yoshi-seals1.3.3/Seals/write/write.py create mode 100644 yoshi-seals1.3.3/build/lib/Seals/__init__.py create mode 100644 yoshi-seals1.3.3/build/lib/Seals/eigen/__init__.py create mode 100644 yoshi-seals1.3.3/build/lib/Seals/eigen/eigen.py create mode 100644 yoshi-seals1.3.3/build/lib/Seals/insert/__init__.py create mode 100644 yoshi-seals1.3.3/build/lib/Seals/insert/insert.py create mode 100644 yoshi-seals1.3.3/build/lib/Seals/process/__init__.py create mode 100644 yoshi-seals1.3.3/build/lib/Seals/process/process.py create mode 100644 yoshi-seals1.3.3/build/lib/Seals/scan/__init__.py create mode 100644 yoshi-seals1.3.3/build/lib/Seals/scan/scan.py create mode 100644 yoshi-seals1.3.3/build/lib/Seals/write/__init__.py create mode 100644 yoshi-seals1.3.3/build/lib/Seals/write/write.py create mode 100644 yoshi-seals1.3.3/dist/yoshi-seals-1.3.3.tar.gz create mode 100644 yoshi-seals1.3.3/dist/yoshi_seals-1.3.3-py3-none-any.whl create mode 100644 yoshi-seals1.3.3/setup.py create mode 100644 yoshi-seals1.3.3/yoshi_seals.egg-info/PKG-INFO create mode 100644 yoshi-seals1.3.3/yoshi_seals.egg-info/SOURCES.txt create mode 100644 yoshi-seals1.3.3/yoshi_seals.egg-info/dependency_links.txt create mode 100644 yoshi-seals1.3.3/yoshi_seals.egg-info/requires.txt create mode 100644 yoshi-seals1.3.3/yoshi_seals.egg-info/top_level.txt diff --git a/yoshi-seals1.3.3/.vscode/launch.json b/yoshi-seals1.3.3/.vscode/launch.json new file mode 100644 index 0000000..17e15f2 --- /dev/null +++ b/yoshi-seals1.3.3/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Python: Current File", + "type": "python", + "request": "launch", + "program": "${file}", + "console": "integratedTerminal" + } + ] +} \ No newline at end of file diff --git a/yoshi-seals1.3.3/.vscode/settings.json b/yoshi-seals1.3.3/.vscode/settings.json new file mode 100644 index 0000000..5464203 --- /dev/null +++ b/yoshi-seals1.3.3/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.pythonPath": "/home/hideyoshi/anaconda3/bin/python" +} \ No newline at end of file diff --git a/yoshi-seals1.3.3/LICENSE b/yoshi-seals1.3.3/LICENSE new file mode 100644 index 0000000..d2c5abe --- /dev/null +++ b/yoshi-seals1.3.3/LICENSE @@ -0,0 +1,278 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. \ No newline at end of file diff --git a/yoshi-seals1.3.3/README.md b/yoshi-seals1.3.3/README.md new file mode 100644 index 0000000..ef4af91 --- /dev/null +++ b/yoshi-seals1.3.3/README.md @@ -0,0 +1,55 @@ +# Seals - Numeric Calculus + +This python namespace is made for applied Numeric Calculus of Linear Algebra. It is made with the following objectives in mind: + +* Scan *csv* files to make a numpy matrix. + +* Write a matrix into a *csv* file + +* Insert user input into a matrix or a vector. + +* Calculate Eigen Values + +* Use methods to proccess the matrices. + * Identity Matrix + * Gauss Elimination + * Inverse Matrix + * Cholesky Decomposition + * LU Decomposition + * Cramer + +## Syntax + +To call the package *scan* use the syntax: `from Seals import scan`. The package also has a function for *Numpy* arrays and *Pandas* dataframes, and used the following syntax `scan.np(path)` for *Numpy* and `scan.pd(path)` for *Pandas*, where `path` is the path to your directory. + +To call the package *write* use the syntax: `from Seals import write`. The package also has a function for *Numpy* arrays and *Pandas* dataframes, and uses the following syntax `write.np(array,path)` for *Numpy*, where `array` is the matrix that you desire to output and `path` is the path to your directory, and `write.pd(df,path)` for *Pandas*, where `df` is the matrix that you desire to output and `path` is the path to your directory. + +To call the package *insert* use the syntax: `from Seals import insert`. The package also has a function for *matrix* and another for *vector*, and it has the following syntax `insert.function(array)`, where `insert` is the *Python Module* and `function` is either a `matrix` or a `vector` and `array` is either a *matrix* or a *vector*. + +There is also a function that given a matrix it return all real eigen values + +### Processes + +To call the module `process` use the syntax: `from Seals import process as sl`, where `sl` is an instance and to use a function you have to append the desired function in front of the instance like: `sl.identity(array)`. + +* The function *identity* returns a *numpy* identity matrix of the order of the matrix passed into to it, and it has the following syntax `sl.identity(array)`, which `array` is a square matrix. + +* The function *gauss* returns a *numpy* vector containing the vector of variables from the augmented matrix. `sl.gauss(matrix)`, which `matrix` is the augmented matrix. + +* The function *inverse* returns a *numpy* inverse matrix of the matrix passed into to it, and it has the following syntax `sl.inverse(matrix)`, which `matrix` is a square matrix. + +* The function *cholesky* returns a *numpy* vector containing the vector of variables from the coefficient matrix and the constants vector, and it has the following syntax `sl.cholesky(A,b)`, which `A` is the coefficient matrix and `b` is the constants vector. + +* The function *decomposition* returns a *numpy* vector containing the vector of variables from the coefficient matrix and the constants vector, and it has the following syntax `sl.cholesky(A,b)`, which `A` is the coefficient matrix and `b` is the constants vector. + +* The function *cramer* returns a *numpy* vector containing the vector of variables from the coefficient matrix and the constants vector, and it has the following syntax `sl.cholesky(A,b)`, which `A` is the coefficient matrix and `b` is the constants vector. + +## Installation + +To install the package from source `cd` into the directory and run: + +`pip install .` + +or run + +`pip install yoshi-seals` diff --git a/yoshi-seals1.3.3/Seals/__init__.py b/yoshi-seals1.3.3/Seals/__init__.py new file mode 100644 index 0000000..e5d934d --- /dev/null +++ b/yoshi-seals1.3.3/Seals/__init__.py @@ -0,0 +1,18 @@ +# Seals - Program made for educational intent, can be freely distributed +# and can be used for economical intent. I will not take legal actions +# unless my intelectual propperty, the code, is stolen or change without permission. + +# Copyright (C) 2020 VItor Hideyoshi Nakazone Batista + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as published by +# the Free Software Foundation. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. \ No newline at end of file diff --git a/yoshi-seals1.3.3/Seals/__pycache__/__init__.cpython-37.pyc b/yoshi-seals1.3.3/Seals/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f8ca22ef5699923e6788edc2f42d20b6b48ab2ae GIT binary patch literal 184 zcmZ?b<>g`kg21+4adVj&7#@Q-Fu(|8H~?`m3y?@*2xib^^jpbL1QJFNzY_H`@^e%5 zGcr?BEAxvpGW7$B^3#hFb8|EE()9x>OEU8F^nLSFN^??+^@CFrbBcBSN^?_-GLxMX vbCOGQN{jWu+H{LSa)x@w5Jmd&@tJvg`kf)1gtaod?07#@Q-Fu(+4H~?|60FX#wNMX!j$YqFPU}Q*P3TDt`e#rb@<(C*Jb%m4reFgpDJ literal 0 HcmV?d00001 diff --git a/yoshi-seals1.3.3/Seals/eigen/__pycache__/eigen.cpython-37.pyc b/yoshi-seals1.3.3/Seals/eigen/__pycache__/eigen.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ebbe9a26e95468d23ac8cb067b83b9c3fa1f8ad0 GIT binary patch literal 650 zcmZuvJ#W-N5S^V}Uydk2r*Mk$K}F{xu@D7Kgb-!ce}Q9meyTb zDtdI+An_mg5!Bm46M7mdW^IBf7-`?k?7Vq98tseS-EAOyz4!C&2M^$zOYRIQcuq%; z2_#6C!IVjq{062d*(LbmmMSorG3Uqzf6h61{ewWVmQ}E32Ck{&5H_sE)mQU3PeFaJ z;F_<+9Yf*n=HQYMzndNEJ`1dRp3oFVZ($>>)xQOgPg@r70E1b7H4_5?9VR`sYTQ1AWA6OPz zmRgosR!_yOQWPYgLG6+9FB!yT9tCkCqo&kx5?rWquELx&=D|f%#bpt^DrKETI=GC& zOrK2ZJW|Q*Jj`ZwR_mZ^JJGK8`1DCn3Zi5l6+NCV8tZlWK0T-(5daD{!V!+y5emGI yL$=M1*oaficJLwYpmKl2=hiFge9-Ln+A|6UdgK#@L7N;LcZc=Mq0s-=~w;OnrbZ znWBrSK;jdU{$JZPePR?#{rB+`Gj<8he?$cDl9=ZrZ3m$}VlXYTeCTo%@yLI-Y z|AwH){!6)f@(=LRQ{Q{rN^Jw*mzS5ktgI|EXlZ+Ybd@l6i-SK+fb$XLUVxEI z@=JEeq>vHxT*e11OGX@~utlIJpk0tF!AL&m)1!`e>=gWU_LbRVh>7W-6BH8^`|P=g z9j~K~OR>f}f%ZmR@C(T7Ag>eK6n)3$;%ws!#H0Y9pQYe4s39KS!Ex*kEBU^@*Ens9 zzUiw<)vEEPe?Fg{&p-6DI3%ttCMqQ3$`n2%x|y^-q+?_2!e>!Pp|g4#xDNdE2eSy~ z=QuA-t@2V!H8ZZ%`MxzLwy0~}oaFm6Uz#TWWMo?@mmjF2a+|}pR#uO8i)z$Xt;;EG z)8X9ftv8EBxo(`Y{&%-EnOS6qnB6KECStKlddYjDCusHoH9kuUBGdzL2=&`XsNWM- zL0BUI3OE-)0VbExKL9PUTl=5gF_N=*U=~|^VjH7@kHRdLkcp6fQzLJzeTp$ewlL4o o>w$R%a`eaOLK|=)iVw5JwP^5HB5i@$VQIT2umj?PMJzr41q1k%SO5S3 literal 0 HcmV?d00001 diff --git a/yoshi-seals1.3.3/Seals/insert/insert.py b/yoshi-seals1.3.3/Seals/insert/insert.py new file mode 100644 index 0000000..003e274 --- /dev/null +++ b/yoshi-seals1.3.3/Seals/insert/insert.py @@ -0,0 +1,46 @@ +# Seals - Program made for educational intent, can be freely distributed +# and can be used for economical intent. I will not take legal actions +# unless my intelectual propperty, the code, is stolen or change without permission. + +# Copyright (C) 2020 VItor Hideyoshi Nakazone Batista + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as published by +# the Free Software Foundation. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +def matrix(matrix): + + i = 0 + + while (i < matrix.shape[0]): + + j = 0 + + while (j < matrix.shape[1]): + + matrix[i][j] = float(input('Insira o elemento {}x{}: '.format((i+1),(j+1)))) + j += 1 + + i += 1 + + return matrix + +def vector(vector): + + j=0 + + while (j < vector.shape[0]): + + vector[j] = float(input('Insira o elemento b{}: '.format((j+1)))) + j += 1 + + return vector \ No newline at end of file diff --git a/yoshi-seals1.3.3/Seals/process/__init__.py b/yoshi-seals1.3.3/Seals/process/__init__.py new file mode 100644 index 0000000..985e6e0 --- /dev/null +++ b/yoshi-seals1.3.3/Seals/process/__init__.py @@ -0,0 +1,25 @@ +# Seals - Program made for educational intent, can be freely distributed +# and can be used for economical intent. I will not take legal actions +# unless my intelectual propperty, the code, is stolen or change without permission. + +# Copyright (C) 2020 VItor Hideyoshi Nakazone Batista + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as published by +# the Free Software Foundation. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +from .process import identity +from .process import gauss +from .process import inverse +from .process import cholesky +from .process import decomposition +from .process import cramer \ No newline at end of file diff --git a/yoshi-seals1.3.3/Seals/process/__pycache__/__init__.cpython-37.pyc b/yoshi-seals1.3.3/Seals/process/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9e70d8d1e4c013be3676b8f769da71dc46342d72 GIT binary patch literal 386 zcmXw#J5Izf5Qgo%L8PPN23zb}h!!CPEvy!8=YlA5ti-~P$de%DNL(o`6$hZ9VrM^B_f#66J&Vv%o=q6dRn8Y`_i{2ZLe4+X6#xJL literal 0 HcmV?d00001 diff --git a/yoshi-seals1.3.3/Seals/process/__pycache__/process.cpython-37.pyc b/yoshi-seals1.3.3/Seals/process/__pycache__/process.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0a056eeb3c4be8973cc38935e325c026dd511ef4 GIT binary patch literal 2597 zcmZuz&u<$=6rP!#U2jvzgc5<<1{6?17)q>GLU6FE0#y$cL=i1SL{)|HY+^h9IlGDM zYR#o^;eaAIa7`pG@F!H_#)&^+uk;eB$BF~u!1vy+*N)XhGxO%nn>RD>``%lByu7?5 z@b}A|XAi0`3h_5hrhf{;O|z@L+~PcVi(bVg3($iy-hZO9kJzOYT`)aX{M=5+UA zq4t%%VW5p+7pt1+t+Lj!pBwC-YGd5=12Iv>*<*YKFgwkI2nnkjbb@*Mt2sphp{sk;lp(G zSe}T9hU_55h+j>_Jj3X4ES=%TwitEJpz{PXoD&|?4(ywr`+JVXL#(KDWoC0(Ox#RQ zBX+HdGM%bwXc>wRXDHH3hfCWjXKv5G_(L$9;AB-!WB^0bn8o8gyUZSI*JJ`|PgHFWUNjskm+`ak%z=s%a zpaag5kS46xRZ$itVZEZtYDt%6Sr(NKjaF9_$+mr>psMe{~)$8PMP#{3m~ znVky{&PxIn!;4+!oICt=8xf`R`Ao_LuYC3nU*{gL!=vVRy*2L>-Zl2Y`|4TW{}AWW zx1@eEOIXj}J66Vgn3?I{;xikKp;y5Jc5<6%$w_)^I3;*eQ%AwpUtB%Nl znJ2JgT9?Fu=H6XHhf_(LQ3SPDIbUmwn*JFb!*hU zO5H*MSvEnV-yQVBR@CbEeuhPO6`i2cN3`IN-Fy+eKt<45m+K%z5mYEC`#S7%Dp0+p z#^tXKfeH>9K0ZW-Y1tWV&eOn}STK+p9}JxpduLbGu)FOdiS!A4u!Iy(QxE~31{LWR ztHqB&fn%07 zP!|xT6{H0v4?YENLI*h9-a&UTPElKhDg}|Me2N-n566u+%z?t^@h8czb@^w@4cZ^l RR?0oU?7!=4|9$_R{{ixa_{RVM literal 0 HcmV?d00001 diff --git a/yoshi-seals1.3.3/Seals/process/process.py b/yoshi-seals1.3.3/Seals/process/process.py new file mode 100644 index 0000000..968cd9c --- /dev/null +++ b/yoshi-seals1.3.3/Seals/process/process.py @@ -0,0 +1,203 @@ +# Seals - Program made for educational intent, can be freely distributed +# and can be used for economical intent. I will not take legal actions +# unless my intelectual propperty, the code, is stolen or change without permission. + +# Copyright (C) 2020 VItor Hideyoshi Nakazone Batista + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as published by +# the Free Software Foundation. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +import numpy as np +import math + +def identity(matrix): + + i = 0 + + while (i < matrix.shape[0]): + + j = 0 + + while (j < matrix.shape[0]): + + if (i == j): + + matrix[i][j] = 1 + + elif (i != j): + + matrix[i][j] = 0 + + j += 1 + + i += 1 + + return matrix + +def gauss(matrix): + + i = 0 + k = 0 + + while (i < matrix.shape[0]): + + if (matrix[i][i] == 0): + + n = i + + while (matrix[i][i] == 0) and (n < matrix.shape[0]): + + temp = matrix[i].copy() + matrix[i] = matrix[n] + matrix[n] = temp + + n += 1 + + while (k < matrix.shape[0]): + + if (k == i) or (matrix[i][i] == 0): + + k += 1 + + else: + + mult = matrix[k][i]/matrix[i][i] + matrix[k] = matrix[k] - mult*matrix[i] + k += 1 + + i += 1 + k = 0 + + i = 0 + + while ((i) < matrix.shape[0]) and (matrix[i][i] != 0): + + matrix[i] = matrix[i]/matrix[i][i] + i += 1 + + return matrix[:,(matrix.shape[0]):] + +def inverse(matrix): + + return gauss(np.hstack((matrix, identity(np.zeros(matrix.shape))))) + +def cholesky(A, b): + + g = np.zeros((A.shape)) + + i = 0 + j = 0 + + while j < A.shape[1]: + while i < A.shape[0]: + + if i == 0 and j == 0: + + g[i][j] = math.sqrt(A[0][0]) + + elif j == 0: + + g[i][j] = A[i][0]/g[0][0] + + elif i == j: + + k = 0 + theta = 0 + + while k < i: + + theta += g[i][k]**2 + k += 1 + + g[i][j] = math.sqrt(A[i][i] - theta) + + else: + + k = 0 + theta = 0 + + while k < j: + + theta += g[i][k]*g[j][k] + k += 1 + + g[i][j] = (A[i][j] - theta)/g[j][j] + + i += 1 + + j += 1 + i = j + + y = (inverse(g)).dot(b) + + x = (inverse(g.T)).dot(y) + + return x + +def decomposition(U, b): + + L = identity(np.zeros(U.shape)) + + i = 0 + k = 0 + + while (i < U.shape[0]): + + k = 0 + + if (U[i][i] == 0): + + n = i + + while (U[i][i] == 0) and (n < U.shape[0]): + + temp = U[i].copy() + U[i] = U[n] + U[n] = temp + + n += 1 + + while (k < U.shape[0]): + + if (k <= i) or (U[i][i] == 0): + + k += 1 + + else: + L[k][i] = U[k][i]/U[i][i] + U[k] = U[k] - L[k][i]*U[i] + k += 1 + + i += 1 + + y = (inverse(L)).dot(b) + + x = (inverse(U)).dot(y) + + return x + +def cramer(A, b): + + x = np.vstack(np.zeros(b.shape)) + k = 0 + + while (k < A.shape[0]): + + temp = A.copy() + temp[:,k] = b + + x[k] = np.linalg.det(temp)/np.linalg.det(A) + + k += 1 + + return x \ No newline at end of file diff --git a/yoshi-seals1.3.3/Seals/scan/__init__.py b/yoshi-seals1.3.3/Seals/scan/__init__.py new file mode 100644 index 0000000..c0167ff --- /dev/null +++ b/yoshi-seals1.3.3/Seals/scan/__init__.py @@ -0,0 +1,21 @@ +# Seals - Program made for educational intent, can be freely distributed +# and can be used for economical intent. I will not take legal actions +# unless my intelectual propperty, the code, is stolen or change without permission. + +# Copyright (C) 2020 VItor Hideyoshi Nakazone Batista + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as published by +# the Free Software Foundation. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +from .scan import numpy as np +from .scan import pandas as pd \ No newline at end of file diff --git a/yoshi-seals1.3.3/Seals/scan/__pycache__/__init__.cpython-37.pyc b/yoshi-seals1.3.3/Seals/scan/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dfa267e815a50d4c7ceaf9a32d318071f01ada1b GIT binary patch literal 260 zcmXwzze)o^5XN`+E6OHNvzTh^rB6j{5cK5dg#TmNJcysQ$Z5*eITQ{rR LU6D1GpDy_?<{Cyu literal 0 HcmV?d00001 diff --git a/yoshi-seals1.3.3/Seals/scan/__pycache__/scan.cpython-37.pyc b/yoshi-seals1.3.3/Seals/scan/__pycache__/scan.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0452701527b478502880943d0c179b2b939cf7b5 GIT binary patch literal 641 zcma)4y=ojW5Z2$`$;Ov}F*py9A_ws;A&@GBVAoy@?yj&S?wpOFUzAAg-Zv$VVG1@cYg2_uVGUS^xac5ghquez|5)l( zd)f4LH_VfuIrv>1hjnWqo>XP34cWzP7H+PfV5fRqxYScH}AcZt;GTl=|E>(JZnn?9rx?HRAt2Sd%w0^5g{OJL)hOf8UJ$lyFVBbUWm435gtR%nSoz y(wPQ~e~rG6A7s0#dr9>o%c82dbr4M#@y!I{^WTR0V;#x+bU-cXKWKdO?(7faL5IZv literal 0 HcmV?d00001 diff --git a/yoshi-seals1.3.3/Seals/scan/scan.py b/yoshi-seals1.3.3/Seals/scan/scan.py new file mode 100644 index 0000000..07c5cbd --- /dev/null +++ b/yoshi-seals1.3.3/Seals/scan/scan.py @@ -0,0 +1,45 @@ +# Seals - Program made for educational intent, can be freely distributed +# and can be used for economical intent. I will not take legal actions +# unless my intelectual propperty, the code, is stolen or change without permission. + +# Copyright (C) 2020 VItor Hideyoshi Nakazone Batista + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as published by +# the Free Software Foundation. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +import numpy as np +import pandas as pd + +def numpy(path, sep=None, decimal=None): + + if sep is None: + sep = "," + + if decimal is None: + decimal = "." + + df=pd.read_csv(path, sep=sep, decimal=decimal, header=None) + array = df.to_numpy() + + return array + +def pandas(path, sep=None, decimal=None): + + if sep is None: + sep = "," + + if decimal is None: + decimal = "." + + return pd.read_csv(path, sep=sep, decimal=decimal) + diff --git a/yoshi-seals1.3.3/Seals/write/__init__.py b/yoshi-seals1.3.3/Seals/write/__init__.py new file mode 100644 index 0000000..90f152d --- /dev/null +++ b/yoshi-seals1.3.3/Seals/write/__init__.py @@ -0,0 +1,21 @@ +# Seals - Program made for educational intent, can be freely distributed +# and can be used for economical intent. I will not take legal actions +# unless my intelectual propperty, the code, is stolen or change without permission. + +# Copyright (C) 2020 VItor Hideyoshi Nakazone Batista + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as published by +# the Free Software Foundation. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +from .write import numpy as np +from .write import pandas as pd \ No newline at end of file diff --git a/yoshi-seals1.3.3/Seals/write/__pycache__/__init__.cpython-37.pyc b/yoshi-seals1.3.3/Seals/write/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7b0ac6bf9012026fce51535debab2ec80e263b49 GIT binary patch literal 262 zcmXwzziPuU5XL1tPC}`-j(q_S$q}-a5ZbvWkS#-uh=eWBKO~FdN9qIgWelA<^#QtM z%E=`Mcl?gK`@VZE%Ljt-CI8OfIUzr(xkrYu#|+O{IN?+gO-~t3oFV6@8FGFk)$Etz zN=3)QMC}HIxnqX2P*=rRe0bRlpVY?8IFB|6j(-xrK%C08h0baLo#bM$p_6d%w)ISF zX<9f8eP<24TOO4Na1>01RUNhP^76*iC8`);I$MP_+pM?$OE6hO(?}!xrdhjTT)yZ@ MX7_~NAwBg-ZzYFF761SM literal 0 HcmV?d00001 diff --git a/yoshi-seals1.3.3/Seals/write/__pycache__/write.cpython-37.pyc b/yoshi-seals1.3.3/Seals/write/__pycache__/write.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9beac4490212a6d0dd37690bdf7db96a22eed3d0 GIT binary patch literal 596 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 literal 0 HcmV?d00001 diff --git a/yoshi-seals1.3.3/dist/yoshi_seals-1.3.3-py3-none-any.whl b/yoshi-seals1.3.3/dist/yoshi_seals-1.3.3-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..fc4f4c0fe0f3cc42bd41bacd30af80c1bddc88f8 GIT binary patch literal 17566 zcma*P1CV5E)-_zV(Pi7{>N2xz+qUg4+g(bockbMt_kHKj6M0T# zMm#G{W~`01pS_QqBq$gf5D*X)kb#GqJoOdy92y7^P$no45c0>jipKg@jtsiG<~HU| zy1Mjs?okTTF-wd{9p_bUKXf#xB>hS$WPp26!oa@;R3I5#TR%}nwCpR z<>w?1X>uv?#A1;9QN-}P%5#A1un})-PDCA>d`Brx5d0KZ{iU^0$J0yWOZ3@GC%6|W zZj$-h{IzBc0~-3Ra+;6p*|^^`WI zf^v_-%`Q&uc)T6YPy2eMo7?W5-Ji{CtsK`gztL95ft!mq$HOBq2I;};?^(#)p+SK< zq1PMPYE(0O>6=;IFl_oZ49p-rEY;H%e&QX*v1mzFb*46eSR1g6uW}8+y}S#ZXP4f# z_Q~idl2UE`JW{9}AEq9PzI1OD4Xu-OXfP4#mSq+Hf@z^a_UMvotahrjK4)J5y>H?Iro3P}2v6F#bg$V{=nuo4*rj%x0MpsePXY zVz>YtZQf-@Q6^lU0t96!b_as@$B$8BfIWD;!*?I=WQnvJIk1kfrOZukw=n;2m(9JC zmm?(znWfP1Tyi{0)MkyN{LB2Tq{ZI`ZVKaojsXkspu%Mum6p0CV5Ie6U*WH^6TvC#$GV?4pN|AF37A2n&wu0heCQ6Q z-6<_qz7qoAYv6+zwal);9>O&vt)buN%@(n4j2+P=UGL&Pq=E~q9j1xgRSc@|l<8VQ zvl*;FqT3tO%-`5<4x8Q}Oi8=RM^`dkF}Aqe#6dWPntP$1MO&^$0!X?bG!xQyAd&Zb zCY+jA&+H|WG8R_gMe}G@j>F3-GDd_U)c|3^?AH~fo{@pbtzjDBY;+6ND~w-QpOY`T zmg3DQyv900&6Pv13N>`bEFlu00#3H5XwLEP$$p#y%bI5uEnnHaW-(_TCW^au%m8Qs z8MXRoj)05mNmW;WG27bba_;^#R`nKb3~<&M4uz8+?c*xX&n!bW+2{BX4fV=$Xu|&Q zq-iEFs#^1C-&lQWy<(Z$p+0}na3-fJAol*GE}LlzTJd=D`lscht8RD3b^}l$f=cy)Nis7FT{=unGNFbm;9M(Tw(?5CjkMkeiNqO03 zSq#qmUbT8SVn-Q`X22j$`t>`Qy&<79oNgnOKW`-261E!)$@oCY-Es0~7cb}^R<{O| zvE1C;`8%Ieh*2RX^~--s)L~nw5Yr|?&}#S4s>VZa{K&0`Mw9CGU%{5Imvb=uqRSp( zybqT`tNS{s*D^r)P3a569TFAXW)Li}f_k-86rr84j>>~XuwDk58Qh%pFp`>@=$lAc zp@8)=m{pKmF$(GiM5HnZnOsS(fkP0O4b3jCoZUne(KOn3!RDq?^Dnx}pK_Nm={=Kq zzWN3yF`v7KRWPH6AZyn7CJHs@3`QCA+N#K>nouC5cDgcJnCqqtTAC%oYFly_1Fv{| zp@(WyA=7OH6I7K+DhBnI+<_}LX7|FI*rbt|o7-EU17q0m!=Qxkg=jbjqW43FJpYVN z)pqff*LkBw%2iA6dodtI?Fs)f&pfW4s7nDpt|aC5rdO@8Pm?na31p!6e)Htbo;Sej z25kL$gp^<+tMZhdyHy{C2ncY#jWQBpY95?iJ<*r%YXU2@#dvhowrS;&476!6hgy}Lx{bYo?Igx5F zu0^0XhD2<+S8^TqGQBkSO2Gr&;l!#e%>1o~J4xC7}L zDTUgUoF6!PC3GfEh7fKGwm^t9`Y@>Nid#tb3GNX#h?qyV62x5P>$2k{E$Q>vfte4) z2C+N>6y8BZih55DP{})RrOFlZ`XS7156>x~ z=EyL-GYWPac^3Cb!`n^viKx$(9<(>s=Z&)`)>p~z$Dw1mZPT_dL$^!}Q({R6H?+*r{^^0Kw#yy9;W$7cK0g}bd zgS4f0onRhy3rroI*mCXd1yp6!RD!Mfp4Ex4@$+2WY zNLwN03uQ;NDdb~I$FmuZM@?Ve)N=~r(vG_gL~S_$lBAqLGVM$>LX2Ys%*#t&mV#R* zp%xCB5J0~d(S^D6HmyXYs02~kmhKj`n=pnk4%6e;UES%c60e?IrtG=5Qr#!pQq6|x zq&Usv(Df7dQ{jj(QGnggKOU(d9V)vdCqApqa?-HP3;W#)Mx!mWFx34#qo1f*-CYjZ z(paLV3@7gS$S*zz(NtQ(NZ|0PuSsI*1g2tFaK?R8h~o{TC1Wcj_{cAe7x06qu)nR| zgE8c!yP2bMbJ3wgzSaAIrB;|Q^%KCVE8LBU?Fq*^=cpZv9LxtVk~JH&^n*0ZGU?KP zx{esQe*|eGMwg7*M)*uOsuhY=_u?dB@p8L)K&lJd#`kxI?M9KYPyUg(f&&44`ki6_ zB-$VGK}lP7nGwxs)G>XKB$D7-Hj~MaGJh)s5!Z?yg~~Ne`c3R#)E=q zLvxGcTEj#MM^y}NAn!q+Wz#>1ivh4!zrnow3s(o?)QN6_Aju<1un@sCEO^JAqAyK0H4V}}`V!=dPy`2Gtj*JtRZIJza3jt~Zk}9Ng}K}N z?%lYfLuT9RRFlo6>Eg8#C72meYXHw_15DlXWtY2OO#3lLq?tQlt+7dGH-8%W_ncxf ziCns+X-(Q}F^SY&9=JFRtft8k3TM0{T3!umsbt1sD71)N;j#5GF(u|8S#A~Plg>*? zUPMtHzuRe1=3zvlfjOL{2bjjXH`n7?mG6A=yq-dEian^uk$RciC(I#0_vF3AokRjn z{rtj@Wysac=oQAXX&JdD-nGtk=6iC>l-^HEm6t(4+H^`~!532G>A68 zP89#p4u9SX_~x|kxdCQ1bZqdL)?U{EuKou7;~me4f+UjlMu&HWfdG?DRpdeJsP<|` zAUCrf1mY!H_2mgZOE)V^SH^yN_s!k}Z6xnapF-nm+z`?&EYI=gy^v~sv1x~TsIK@9R?@xba-pGGs-qn9(-aDhjQgI;S9CBTqg1bKjQEtdR zU4yR)r%H_ULA0lr+5#}>8URc`CsE6E!izJ}gX^QL3`G>wmJCl)C-@~o4sJVR$|onq z)owY@LCZ`L4$CbYyz)}y1Z0;mYv~oxM9KRgrGlg=z^8A1*+I=Akn~nZ^6X{0Y7g-u zU=0L|a}Hn~@)L3PCE0zm3glrNHr##^Q?qe~BFsd}^mE;8?Ku`iJzU=6nkc%anmH#1 zaW6whq-RM}*`j=7A9DiVCJGNM!^WNM2n?9o$@DMVPPp(A4>%T`&sv`)#8brP>t5w7 zI0j~UC~FFTrQ`!>5vs=U*{Eo?>W|^G&cCjiiMwjl!b?%yjQ~%G^9!a0L5!TC>ig3t zBwY!^(&5Qq;-q_#zGOEdorc!im$1SIl4RBGBfHW<3}9b>1)b&F3lKrF7A|B zxIQK^XFsHhH)YNc1|u<8;p!oLc-iy;I;2NsdsU@2rP%{31b#320kYSV@6A*hV@ceiKp%&ep3NB)uaCx)vg$Q~n_|xgpe7V2D>nO1M z^p;-4U!prP-$Mf{7`$Wroqu#3g~p&C-k0H{Ztz!(|C4|J@A~0`D^%qb^Td#R?p1Go zb$-PlxjfQw^5!2aFBvUO3|y`)=a$k#A&*VP{d`c{_2vO2{uSCIi3J-qrba3SL?Q$0{2sMh8(sj5@QKUqZm4TbSKDW z&#?!!xt!jEe+2wBO(<{VM$iD0T@HU-C_qZJS;DI$K`7=iwB|YtByS)q! zAm11?kG0ybCV*hLGch3_SeZ>2)Z}opF7?o5D@lh7m3;&S+MlrE2jE7;6Lm5N(eQc_ zb@t&4ILOt;!Hf@-yTH;{7w8Za0<_lz>*w4LG91#36CqB>p9u!Xi?kHn3d1IWCco;z zc}NEjp8!BD=5wNrH3mTh{kV3}kJCZc%RVWjKZh7Z^aKhWUR>3p4QLkHBO*_K@`*NS zx?h7^X%l@olp#O+$O3W=Qh8@V!mJya1ohxZiL{JUa6w+0Q?=G}Lp;A=$C$*lO7+d0 zoSAS2ZN7qOx!FLzM26UC(U#K^8IsKe;0(A zkQ*AwzGBcG6qAu;Ai*Gjl&2YGq5t5b4}9N>(M|@!mlO1&kiIamK3oV`mJO5V4rslT zcL@m{9}nCKdZ9y$DN+4_QorlunxvcNy>A00V|6Myb^whQV*Pvd=~%4QVZvvIOlnE* z3Yz_;Z4{$bXoc%x67?f*1_u4rY76zFG9Vv=>!MrSJWMCg>1O`-D<-ERW4#-#K7!{s zCARSk?i^}qw-$N%0(9|$6I%Hj-|zygh24R@G>f7#LR?qFkmRw|<=96i+e@~xb--M5 zZaUqWX3pKMlE&R8%xUD~ODy`l3ijja>!Tlb(xS+FM-j;cOx^9s9r^oUY_5lx2p6{G zQ&y*pVFL;65B-d@A*ax8v(EFNDiG|0<|{AR;gG_dnc2PTVZhr`KSq?w_Kjrb?9t#f zeaMIADI=<Oj6en-e!lQO_UfugbZ93-d%yQYr%2Y9R^5fW?kT*)+c;R?ItE0LO8mVGZznzaZlk^eS z+|t*~;@YkjQ&|FiaZ+u1Sdy|TWOL7)O0>QQ%_$G+VB77o`1Go7o^To^$1zY~0r>zN zaIP7D=*l@}IlirCX=Yj4VL=}SvX16jr8uAGaaq6PmR)+0rM?m+k7a+OeAGHmbf{y` z?MY5_&#T^t2w@w0Zky=kdSL;#vpvc~-_KE$7i)h072p}f?ioa%>@&0msocUtw#`=5 zf1DQgB2KUV5G0hK+EXfLN1g?XUS4P@uUK&>CiDfp_CC6>c4WmQ%Wvy=6@)oa6PeX9eMpvJ-lm z`t)3MRxfK${(to{;y>zTDC!dQe^W*= z|4>Ht&{>&D;h?^Y{Ql!Ab(mXKL9|rQMx@uo!>w}V&LlUMeJ3bdHMliEXNu#=5d$v< zmyVs?m0|-5+s%FBL!b$Pi{J}6s3Z;ujqgTFV~ZoSI+Cxy1!uJWx%h$)j#+;MXq0~? zhyUQ%AE%G7JfI*gyUmE!ey_?+hY<^CI<;URM99gNgO>PNAHhz<=41XxX+Jafq-xz> zfj3{9$Ofmx;)>gr`|~-T{2;)Sv!I}ki-Ni|(1^O6BuSdyzgEOdfxH?TdbfA_(@?Z} z6KNu%jCFdqgPl&g{4c5H03v`mc)$MtDS(KR#2+D1&mw}?v&Q3P#Y5Nh(CyCfZ7!`n`BN$ z`G;mv(;~@9a&@o2PU4WYG;}J}BTa2JeUVCLJPQc*K1P|J3$eSv?nr17c0-PyDru13 zU%K?f&Id?sb2Zb@D9`vq6by>FWWE5|XIag7Yca4oO$6gv(Wh6aaIBVQM42wtMIe{~ zK(Mz`8RAY@Q3ijh&&A`_PmgZ}+ZgouLccT82`%3yHwLFD1X5PvNb+EeLsh z+ViO^bh;EnJhVup{}r=uOLd*)Nv`};!w(aX!I%@ofwZDsQOI^6#<1UXeQSt2Yt^Zv zWsEg(ruyv%vv$S)?1Xh|?ygBg`&1=kMPweO$UDUhns&1t9S2l_x9KBt-vv@3S)#!d zro^NLqB;nUVw0|zmYJoCUO0rGx9mlR5^^$Y4n`5HpxrAOKB?`1UG9{kv_5lk;J`s4W&k0%601zLYIqr3`gfA8ujz%Hb>&n+ zenmvIQ`eevI8YldS~=%~>N(dQ+T_bY;dkk%tmLzifd#0;1$ZB=X57q03vNrr98BEZ zz2_|la0%|8ShEf7@wrbuf1_{##M$gW3PRs6_ZjQ7NYYGSK7N!(^>J zrbS3#)J;qO_~Ae)MCNB;FkUe}H9Cu?@po%N92BL|Eka{aBayi!$Rb3+?@wDOqrZHQ z0*am@%mP8{6pqUJ`MI++ z$+L=Kp3WRYV;~OlSwOg>F^%ODo8!)Bi;#Wtc52aiO!pKeE)Q2wP9e5VXqTY|8xg-a z-GGV_>6?Jq>kSi+6>FDf5=j{&n~;DRbbKe_U#K!WxgfMTfr90aDj7UN-R!N=TH$Q; zYIRmADCyopFWL3|OXi)sI>YtULLQ2=`xj|Fr2d2*Zj+f0?k;5x5zYQZiGDDo%-hm@uv2!1Ve+5KYr}M=2)% z{ic)44SuyhPx|7hUI_PL_CvZfrU|3^(&mdVVvuBE2rPjcRN(mO;+Q0F1n-6#Z!isb zwWy6(eOlj#JqcGL{SwVJK8Z76-~#M&AQZL|aLPx0@8G5od9Uye@%QM=d0pR8_d&8> zAF}$dZHIr7>>uYp%1Vloe{70&Uek!If)W~2$=&`y525v66>CrX*cBy0l?`o(&RjyE ze7(hk9Bou+vyibj*-Jm)ToLe>(r6Beni1`jpu`d#ZUEkK9?X~y7e^Y+aR4@w>hT+e zkZ0`w*HbvwEuVVqgNGc zn=}^@ljE14G(`EArD*I>SaJ>9^ z$0`jyY;64O=YyiX^j|RC1sQKjRB)vw*O573Ic*VT%jmds0D{bHw*ujCpNIvGk!8%< zK`=o{5IRj@9qu-OUk_Fs#VfV+D$NDc7dCABeI+Bxt@mNIkyHISWUHcfQFL_1z9JQ4 z=;YqGcSsXyoof zv`8Xl)Ez?VC6AmnYt;^9vTD3E$sDJw0OO&`e{?M$(R395B03aUU$KK1q#u^DBUg>8 zK#3KOI%D8uSh~lDYpPI2Lgel@_q?|O8oHvp1T-lk*DuqR&JPqf3bEEdMPgxaq#VB= zmgnN15|Od7uV9JVomVI+1v-Wlygg&)#`na6+rtVijK~i5D&OoxZGapQn%@ z$Ds1S_t5EURuV%&iN~Ae#yOr$>%PtUIohB#4onO-g{$kyf5>Cxa^NwYs}jiANSJt zL`z>KY8NPL7e*Aie43)SyGhb5tYmIfTlNTGt8+TM8eLSbv1+6rdURW(XA^(R*qdUl z5a(sENH|39ak1-+s35Ac^Lc`WLszkjAYIC|(+Wfa*p~tu%N@OD_43 z(Hr$TzXqeGF+F5_`X}VR=Fa1kNoSu@V)#8`>G*SNKUax1nuvYo#ie;^fl=uWs!#6lz9zuSxjMFa(Yeq4;46w6SqvPmR;f8 zyyw0IFD4JGG^AmJ1wN+gO~gKe@6T6)KX#<$+l{ zUtOb!7e21mVlJcJtb7ERI#{BhD$Y>x z=Z6v*VFPh2ms5VRN%L5UEX8x*i)gfb2g(rhf?5BAM17;fGF5Ejt1~~Y?ZghSh40P{ z!yOkDVcdvL!FFLuF&3c7-Jh2?;EGwK1OUo-5bqL_s8W5HE=BENJ~6E-UA=`3%gSBL z5lzVoW%W*X4G2vv80YjkeElu13B?*6HVTx9oTWQs<2)qe1u!ZKIo?>f{huHvbn{`t zu(q!QkM&gq1nYw&&6q~A#F})_6pX9+37y@-1~)F&HX|ulf<{-S?aQ#Mlq;xM()YmE z7}Nvr9P-8H%f2x7yLl@a1U@SLVB}rr%-X7zuK((sZ;~$r~Oery~fTE z#HE~b&r<6qHP12v&B!6H8RSPUKGCEqFs`vk8V#O9(!f{~2N9dVl9r_rs*hw4<=gbr zR+RLUcWv38U-Tgi=|2pk{fR>eqhym2WFf2li;{@AqbiEaN4svk_dG?DETA3jP-0S- zi7Sbk=}6TM@{7(gFl7KGx zV6Dt=&otRAo2X70De4)bES=IS{md?@E&YyA=x%;2FQ4cFHA*Z!=ATCL;7#1Uq&k|W z$UuHof`Bd0yjkx^cvBPRm`MLH`p)k!klfi`g>&0j;P2-w0Okhq{)#C%B|0nnnJZ&u zDLrK5)Q#6CW&C8d4~>u42Tzt4?&Q>sH9NX0`yrA0;c(N%i>(vu3KakGIPrV2V)e*# zp&9-bWuZIWs4cHF5?OC>qIfaIr!DOyxBY?;Ck``3qjDDI+WQ4pSQZ#mCvhX=v_{Ml z0B9_4)R)RR2wVKbF1D}p2pYJUz>IXy3M9l>!yTjo><2i=#&Kq5V%*fXE@8NR2YNLAg*1E}nwzr?y7pA% zh)Qd?-e1&31c%2|^~@OOm0Ye;kdTq8bO#SJg42AD)bb`g1K7Nk_~uM6<^h1IC51Vi zuJs6U4Y^OV1<(EBoG9^Iuy?28$MoNp!If#Usy06^(oe6&)f(*N+`y~kXVFAZX}hx7-_=FJtG#kLfvMnc-f7iayyIZ zEMaj@0m$As4O3vg?(O(80%Gsk%dm;fzplAIC$1DeDlGi!N;flNJdaG9Q24_o7d-Zu zW%jBi&_=i>Hg5A&TgFUjybNVFXA{laa#9|K2()6s!+mJBh+9bw_mZen9K7C$#9M%a zx7I5=B149`igNO*;(JZ4%~-3Kig`(%79`a)j*8i^r+-hx7p`3Vc0jb)3l($&(n~6t zL@pDZDjhoKGzTe?L|1rMI~;qbvNz=o$BP6%IpLYaKFbekJ0)duTEXGZI&P#IqzlCY zO3FV(cO}(Ijl|*AQ;-Gb6Xr?${V``(KKHvTwg3v~Qt9#~!Ca{lyu|Z>C}(nhW?!|N z#cH#Y-3Y7s=O$mCj6^0w0l)V=iX8X@VN8q@5?24>^FpH}IE77Ky#bJ0qg)~ns>UEL zeR6~j>ic?WJZG$4tV?QIa7}k2d8C8rkSlkHv^H??{6oC;DHFU=wf1<__?Xcbjuprj z;NKu4;c*OI>V=23!;^@}5_Zch7rTc^^dg&(#2F(W4%uHxFU=(wC)&iR7yFpOKwi-{ z8mH|fW@w=R0QSoMPFA0IEr>aTs43|#Tr<5mj4P(Tg=-+d8(%ssAYIrhBvJs>kKl5# zIZE_!V8Z?V%FY%Ry{np{3=7I0s#G7^jT8WxVLn3JmQcrUY`K^$#yKp?{47=)kjLR` zb94vpxZ$W=8&&V$M0PFKRe~kLl~8~56U|Xgk+f>iZFZiv02y28T}2E~SOuI3?wW^u z`iKS!MjQEQi>qjR?IyU8?v)AHkX3=!iNzl=A6dCZ;y&XW%^XM#pH6L6`43LY^z8uw zrzn0IV>I2S#~;Vy7RdJUEU;)98b8VLNj90R&m`8|fWV;YIMKQt&*{qR<2rM=BwBH{ zJKGdAHyMRyIgp327R8N4Ulrv+CX6$z0&Pk;!@vly*-cI3j-;oO!sy+73X?$8*RP6k z=SHajdq@`IKHm_1frRKE9SwBD%QwAzqY9f!BT&2(We+pGV7%K%>nR1FBARE*sdy*I zca7qnmt*3da-c$1>H_98u&1ZmB$J8_E*U0Od%1CcX|gu#;DFSk?#_<``a96^*VKXK z_ZiXRfrm_a3!U15;hiqbn}x*JkSn@Go$oI7cq?IMPOzCNWkWJpo_9C^h0 z#XKT4%t&oQ^2*6w1v#p`bg@ObtdL4p>0s#=i%m-k(T9$aCyiM%CJ3XafXvZ|#o) zHFRtl_~MBntE|EX2}X&MJx#Ooa6z5TK0Ti=ZnVEC$G?ZbC+)Y>Oq763pvjL>U(8{c zFvTXl1#p#oCPvL2zMviHmaKdn&%^YsD4X?bh(vJ&kvEZWvKF0d` z`Fx;AFM6JD8k+jcPYdVCqcv{!cG!;1u^)qXhzMS@px#nrdcjzlEJ|EKd4L)InlX?c zFywm7BI|rM$~wkZ<=!mi>d`XpZw+`Qb}S)CfIiu*=N^m4WOqUl7>!|kflZXLGA+$S zjcEI73@LimzezmrU5@R8JCx4TLTN?8LsuB3+om^PISY`*;?xiWH83k0qep2R=>h|` z+MMy1VNe1%yujO>Fb9#N&ps3+Pk$FlT&h!fE`@MPz(Pf})%9VOn6^lOwL#8W&WjX1 z4U3UW{e0gLLfpj*fJJr&lv9GZIc^UbZ5?b(eQm`(#b5=)qj=NMXcs7)!~YrFM7znU z@VSMX&~C>Y*aj98-QXb?IYT#9vAQ;y%w1o=YlYi3cO~m-*)h}J#`PdIw;&;OxTl^{ zA(%h-{eTcOQ*4Nzvs~bwg2XAPiplIy06H&PV&8e)6?a?Wd56Y(cn?`&bAWtE(k@)v z8f>c_29tIY-}lX_P*#Vj1a`DR{zo;;TxU{EXnwunIm`{1W+8mvcU@w$76J>$GMREA ztj$5~@-Yx(APp8|tE#PD6hRG_2zEL{6b=J27dEK@Kj8X+_UqpFU($tPWRj@$(FUzu zWrqM)jQg~kVQueee`PAs_{}U0?jc(pu}bR!3i3~g`_6lxalG)B?rfc3`4O>RBK6tf zOUwGw5m$Tl`_cmo%fCIhO1Fwx;?0?kSbD~tKldBDe?zd4?6Eu=&^aGA(wOO+hs=A1 z<y4DD^%&8MsFe);XZxay z>6vgJYmlrg6-+?3W@Wm9O_@gN$PwRSvM25(CPa3GIgFYQduU6xs0RRI$$K@ z9{bIlh9=Wyo{i=~or8gE*4wg>wjoMo@}Hs=^-Le%Mzh`o_t((q87Mr>7hX3c=?ymYr7wSaHK#?0cyT*Em2!k`m(8 zHf>^xEU8=U+C&Y;HKNJY@9K@Pxf{`X0Cw;ZS$SI`91da6jy(o76-ro18_VJ8&R1yd z{I4*>Im8lsah<&kzCW=N5S`CTeyVW6CKY)Deuml1rOD27 zM|*3r$MUPc>(we9`$C!dm7A^u;NR11RSTBNN|!v*7++q2WfNzl4dcr6Xh!k#K#F;# zFfb%nGAsa3rAsok3^w&aZ7n<66SYZOQ38UC$sxcPTQ_@`BI?Nux!@>?ntd;%?CkYI zs?b^AbSmb^$tL!fr!R()QBs9$=Q%;AxR;>dAu&Q9Ubb#&&h%74k=k?AcxBgFsv6V# zcf6{!Z?V^}@UuFSDTz2&c@E>7TC=Z%izpPM+5ex*6TFj-T)jl#Yt*bufH zxc0|urf!_Zw|YquM}+ZaW3)`R(THc%{;ZAEXav&}*YP+vEuN_CI7##_)m0I$giyO7GJHP^oBmF0S2GrH)Mq2u^W2-!jlWB#iLd%L+>e29j*ozYTFpSG$RMY2q>U16sFa7ctVz+K z(pAb+Lkuz?b+;3ikYSs>7VCzqpZ%hg9M|ed6=QXy0JpV~gXY9uVmr6ZY;VbCt z?vD%N;$RERP>!obn*dj}EaD*4CRvh98b*+B*mzXrcipyEEak zIclTGQa{K%rY>3Kb8#Y1kdw;1RCpb92k*$%R6okUIq}_cE8idlJj%uiKT7u5jngVL z=((p`Nj^ByZ%w|Zdo>z=wI{ODu_{iTX6`pF z(o~_Qew{~@6&ZP81)02v4!5p!;9=2CRd0_j{=9GD)-#PKFX)8YR%%2&56nM0ugV`u zm){2%0Mhs;$(v4`8RK2yitQb>^Lgo;vsOm?1fqBLPZ#=}FGfRk)fAqV=Y@H3-pzGv z1R=ACdBEA}(GNmW5t?<#z}&Zld@*ksG31WV>}fvOQ~TdtUVkDG5D0j=dGpoY_c6#_ z9!#arY_Iq{vZtj$#=kQ|@YOxWGDK3`jX7}>$nru7RPM~GJEe~p>iUhb5$4gOsHI_QHn#mCD%p}9x3Vt4iP&5^qWZ(&9aD(cNEBibZ( z{p;NWDm(t>*yYaN+o6g|K$U?06=O&iA=X0%U#LZIogZfku=lk&OVAtn_2%t^Pb5i; zq!(M3tX-fLE@I+!deJjcpj#R*@3=_Dp3AbM_Ww zK|IX(t)(hNSz5B#=eH!plnWsAFSSj1Z8H;IFIam63G60!H|9IHJn0esXXmFzPM|&^ zvsEsvX+HSta)>6J9=OptJ~q;_Mfq2ZGlAD<;e!Fmk-W2zS>*TMTsWV$p|3J7z2k;3igiu!fL{rzxn8D%B<#yQ6aLVRS|gZ} zkUN9eF@hOz(;$93M!Yz%g z;pK1pHGL7)-+hko^&unpFI<;TK`gh)FW&B`{ZK zpFA5u$E_8EMb}accH+a=h**o~(i`cXo4wH``yEKxB zKtQDbrHCyptRx^Lpd_%XDs8*Xiqvte3Rj&h6pC&Ia-;WMIKU_lK8;=Ax<)mMY{`Hw zP9xso*XwO25tXn^Mune^EG%a50M_J?XAJJ62s`b}=8iZfO+#9*_#IQKK1pHqOk+GM zO?Bgl-djqhNzsV+Jc}8tVv2JVW9?VR@`%ba+Ik#SbMPqoHjS@J8`QuuO*?rQc65pS zpr*G9%4aMvB_5>o19Q)iNP z%Jb??U}S%ogZ51}^CH8KdcasVnkX06a&VgCy>%Lano3q06MZX?z&G_Bx9J*>Z^K>% zr0*H;wu@Nq0$?PZOmBYZ&5AVyS}Ki2w|=Fn2zfi4KTPt4n+jfjreU|#%$v{M*&kaZ z(Sjj^`(-yjVd-Cbuan)~v%7lxv|~rJU@bWrt+;Mmjw&4rqgskq@tt8eo^N1Y23wyZ z=R4KQ-Ld(dqyv$azR_{$*hq^?v=#+odeV~1Ryr5Cf@*<}3d1r3R3TMyr8!#_hNcqP z66qsQ7Dh_DykI=HlEZW$vGU?4*!Z9z2uWZt2EFB9@n7BY^4T0lHb&t!v&AWNG-0*p zpHge4ue*dccQn*~;V~)7B#;I@gP`XJX%|(;e!!)BhG6S~JO}1QlK|kkH8WIRq+PgWFYO3vxX2%6Eey z?tqXPlUj@7X%wXh8T5?hGNMc-GOF)P%|vC?L>zG#$eXI z{~i$K4T+N--*agny#`<*+`xl?%5B#Uiq`+Cpw{arFq64$xDmGs+90Q29w0`EA-cYu zqxJHDvPL5FRM&yw*yF5w1lSeuE@l~E?LndsXVD|hTyIZrie)_BhIm4_1};*QTX(~z zn2E~nm%o2CIVa0!03|~Fxx0BZDk$#0aGC4Z<83zBc8|xH--+aK%NR*`5lDAvqLSD4 z(+|1wbG;BPrhgLi#p_4@y$#vwYc_fnH5_BuxwS032I1I=s5^rJrK{QXU8KuV1PM%2YBF1ukQ^Ua5 z){|o{cCNG-4{n@LcM3yZ0(UElH9r7{kN0Cs4&{sI@>CG;L@13;`SAtJxFH}osAA;o zx%LKuAH!bfn>%-%m*4$47;pL^+N=4n<|2ZAEw?xnd2Ks$%CHYf&yliI+ z1nBR#HVH_Rg8H~6h>thbf4Ma$TRUAVV;5s9dM7t0SQ+VYs=eRgU{OqZKE4FH`Un)n z{{>D#SWs3$$a`)qx>N!UV#A#e_HIw3djk$kLU>2zyO=B#2+VMYL_7Cujb~F>haqR; zi{;(!l!mywy4EJ2yb=p|SnmCq#3r{1_=T>HXAT5&OHBZDNRvdhDyO_OjVqOe4Cg7x z=X#ZP!`58!k@AZ@Zvl1t;WSm;2}w3VtmC@m$7eZ-s|&YgbiLe`a>s^_-u9px9Njr% z0ma(xmyOP=5o|3VZ~rI!xcYFh^Q7VvVJn(h&bXvs$RPQ&@!LdX9+FJVG~R~70d;=u z)bltkY3uApd9UDP?X^6nRB5<&HhY;GMQb&iKn#vFoArf8VQ+`8c(NKHmD->vj7e{u zx3vPoC0u>xF2H_-911Hkw0$NkGOAMHn;e(v$HA;47h{?mF?xE}v>Hj`M>?wLKXzCt zRhMSIVBlX+IJG4Xwj69*1DN3GUPyeVDC{)u03ZcpBMD-aYJ-E*h<-ZSs z|8p@AP`#hvhw=UU=EskE#EE{<@+7v z_vWm>Kv3}h4)SNK*1seCPn|D+A>0%E|LTMJ9q@M*@)uw`>;Db-rzZIw@%P~T7vlX# zyUzdBs`HOf{X5+60rfAqc<%oj?r-7sci7(p>%U-uH~$OlKf|n?B={d89ti2<@cS@t JNd7-Q{eKPQ?$ZDO literal 0 HcmV?d00001 diff --git a/yoshi-seals1.3.3/setup.py b/yoshi-seals1.3.3/setup.py new file mode 100644 index 0000000..1be5f73 --- /dev/null +++ b/yoshi-seals1.3.3/setup.py @@ -0,0 +1,26 @@ +import setuptools + +with open("README.md", "r") as fh: + long_description = fh.read() + +setuptools.setup( + name="yoshi-seals", + version="1.3.3", + author="Vitor Hideyoshi", + author_email="vitor.h.n.batista@gmail.com", + description="Numeric Calculus python module in the topic of Linear Algebra", + long_description=long_description, + long_description_content_type="text/markdown", + url="https://github.com/HideyoshiNakazone/Seals-NumericCalculus.git", + packages=setuptools.find_packages(), + classifiers=[ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", + "Operating System :: OS Independent" + ], + python_requires='>=3.6', + install_requires=[ + 'numpy', + 'pandas', + ], +) \ No newline at end of file diff --git a/yoshi-seals1.3.3/yoshi_seals.egg-info/PKG-INFO b/yoshi-seals1.3.3/yoshi_seals.egg-info/PKG-INFO new file mode 100644 index 0000000..d30564d --- /dev/null +++ b/yoshi-seals1.3.3/yoshi_seals.egg-info/PKG-INFO @@ -0,0 +1,70 @@ +Metadata-Version: 2.1 +Name: yoshi-seals +Version: 1.3.3 +Summary: Numeric Calculus python module in the topic of Linear Algebra +Home-page: https://github.com/HideyoshiNakazone/Seals-NumericCalculus.git +Author: Vitor Hideyoshi +Author-email: vitor.h.n.batista@gmail.com +License: UNKNOWN +Description: # Seals - Numeric Calculus + + This python namespace is made for applied Numeric Calculus of Linear Algebra. It is made with the following objectives in mind: + + * Scan *csv* files to make a numpy matrix. + + * Write a matrix into a *csv* file + + * Insert user input into a matrix or a vector. + + * Calculate Eigen Values + + * Use methods to proccess the matrices. + * Identity Matrix + * Gauss Elimination + * Inverse Matrix + * Cholesky Decomposition + * LU Decomposition + * Cramer + + ## Syntax + + To call the package *scan* use the syntax: `from Seals import scan`. The package also has a function for *Numpy* arrays and *Pandas* dataframes, and used the following syntax `scan.np(path)` for *Numpy* and `scan.pd(path)` for *Pandas*, where `path` is the path to your directory. + + To call the package *write* use the syntax: `from Seals import write`. The package also has a function for *Numpy* arrays and *Pandas* dataframes, and uses the following syntax `write.np(array,path)` for *Numpy*, where `array` is the matrix that you desire to output and `path` is the path to your directory, and `write.pd(df,path)` for *Pandas*, where `df` is the matrix that you desire to output and `path` is the path to your directory. + + To call the package *insert* use the syntax: `from Seals import insert`. The package also has a function for *matrix* and another for *vector*, and it has the following syntax `insert.function(array)`, where `insert` is the *Python Module* and `function` is either a `matrix` or a `vector` and `array` is either a *matrix* or a *vector*. + + There is also a function that given a matrix it return all real eigen values + + ### Processes + + To call the module `process` use the syntax: `from Seals import process as sl`, where `sl` is an instance and to use a function you have to append the desired function in front of the instance like: `sl.identity(array)`. + + * The function *identity* returns a *numpy* identity matrix of the order of the matrix passed into to it, and it has the following syntax `sl.identity(array)`, which `array` is a square matrix. + + * The function *gauss* returns a *numpy* vector containing the vector of variables from the augmented matrix. `sl.gauss(matrix)`, which `matrix` is the augmented matrix. + + * The function *inverse* returns a *numpy* inverse matrix of the matrix passed into to it, and it has the following syntax `sl.inverse(matrix)`, which `matrix` is a square matrix. + + * The function *cholesky* returns a *numpy* vector containing the vector of variables from the coefficient matrix and the constants vector, and it has the following syntax `sl.cholesky(A,b)`, which `A` is the coefficient matrix and `b` is the constants vector. + + * The function *decomposition* returns a *numpy* vector containing the vector of variables from the coefficient matrix and the constants vector, and it has the following syntax `sl.cholesky(A,b)`, which `A` is the coefficient matrix and `b` is the constants vector. + + * The function *cramer* returns a *numpy* vector containing the vector of variables from the coefficient matrix and the constants vector, and it has the following syntax `sl.cholesky(A,b)`, which `A` is the coefficient matrix and `b` is the constants vector. + + ## Installation + + To install the package from source `cd` into the directory and run: + + `pip install .` + + or run + + `pip install yoshi-seals` + +Platform: UNKNOWN +Classifier: Programming Language :: Python :: 3 +Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2) +Classifier: Operating System :: OS Independent +Requires-Python: >=3.6 +Description-Content-Type: text/markdown diff --git a/yoshi-seals1.3.3/yoshi_seals.egg-info/SOURCES.txt b/yoshi-seals1.3.3/yoshi_seals.egg-info/SOURCES.txt new file mode 100644 index 0000000..d941c7a --- /dev/null +++ b/yoshi-seals1.3.3/yoshi_seals.egg-info/SOURCES.txt @@ -0,0 +1,18 @@ +README.md +setup.py +Seals/__init__.py +Seals/eigen/__init__.py +Seals/eigen/eigen.py +Seals/insert/__init__.py +Seals/insert/insert.py +Seals/process/__init__.py +Seals/process/process.py +Seals/scan/__init__.py +Seals/scan/scan.py +Seals/write/__init__.py +Seals/write/write.py +yoshi_seals.egg-info/PKG-INFO +yoshi_seals.egg-info/SOURCES.txt +yoshi_seals.egg-info/dependency_links.txt +yoshi_seals.egg-info/requires.txt +yoshi_seals.egg-info/top_level.txt \ No newline at end of file diff --git a/yoshi-seals1.3.3/yoshi_seals.egg-info/dependency_links.txt b/yoshi-seals1.3.3/yoshi_seals.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/yoshi-seals1.3.3/yoshi_seals.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/yoshi-seals1.3.3/yoshi_seals.egg-info/requires.txt b/yoshi-seals1.3.3/yoshi_seals.egg-info/requires.txt new file mode 100644 index 0000000..5da331c --- /dev/null +++ b/yoshi-seals1.3.3/yoshi_seals.egg-info/requires.txt @@ -0,0 +1,2 @@ +numpy +pandas diff --git a/yoshi-seals1.3.3/yoshi_seals.egg-info/top_level.txt b/yoshi-seals1.3.3/yoshi_seals.egg-info/top_level.txt new file mode 100644 index 0000000..ce88a75 --- /dev/null +++ b/yoshi-seals1.3.3/yoshi_seals.egg-info/top_level.txt @@ -0,0 +1 @@ +Seals