{ "info": { "author": "Tomasz Bogdal", "author_email": "vladsmailtotomas@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: X11 Applications :: Qt", "Intended Audience :: Education", "Intended Audience :: End Users/Desktop", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research" ], "description": "The Why\r\n=======\r\n\r\nBeing able to calculate something is not very interesting,\r\nbut being able to visualize it makes the calcuations mean\r\nsomething. The primary goal of these programs where to\r\nmake sens of the different numerical methods and be able to\r\nplay with differnt types of input data. Also I had some\r\nspare time on my hands.\r\n\r\n\r\nApplication Descriptions\r\n========================\r\n\r\nchebychev\r\n---------\r\n\r\nThe function of the users choice\r\n(or from a set of presets) will be approximated using\r\nChebchev Approximation. The user can chose the start\r\nand end range of the function, as wel as the number\r\nof points(in that range) that will be used to plot \r\nthe function. The range of Chebychev series can also\r\nbe set.\r\n\r\n\r\nintegral\r\n--------\r\n\r\nShows differenty types of algorithms used to integrate\r\nfunctions. The fucntion and expected result are user\r\nconfigurable, as well as the range of the integration\r\nand number of subdivition. The first algorithm is an\r\nimplementation of the simplest method used to integrate\r\nfunction(calculates the area of a trapeze) while\r\nthe other method uses GSL's QAP algorithm.\r\n\r\nThe resutls from the calculation can be displayed on\r\nthe plot. There are 3 types of plots aviablable. The\r\nfirst displays the error rate in corrolation to the\r\nnumber of subdivisions used. The second displays the\r\ncorrolation between adjecent errors. The final plot\r\ndisplays the actual result per number of subdivions.\r\n\r\nThere is also a table displaying the number of subdivision\r\nneeded to achive an error less than 1E-3, 1E-4, 1E-5\r\nand 1E-6. All raw data used for plotting is also\r\navailable.\r\n\r\n\r\n\r\ninterpolation\r\n-------------\r\n\r\nEnables a user to see the precision of different interpolation\r\nmethods implemented in GSL. The user can input his own custom\r\nfunction, as well as describe the start and end range and\r\nthe number of points that the interpolation methods will\r\nuse. The follwing GSL interpolation methods are available:\r\nakima, akima_periodic, cspline, cspline_periodic, polynominal\r\nand linear. The user can chose any number of interpolation\r\nmethods to be displayed on the plot. The input point are\r\ndisplayed as dots. All plot data is avialable to the user.\r\n\r\nlineareq\r\n--------\r\n\r\nShows the time relations beetween matrix decomposition(LU)\r\ntime and the time required to solve the matrix. Each\r\nmatrix is populated with random numbers. The start size\r\nand end size of the matracies can be specified as well\r\nas the step size. \r\n\r\nroots\r\n-----\r\n\r\nShows different root finding methods \r\nand the error assosiated with each iteration\r\nof the convergance process. Both the function\r\nas well as the bracket range are configurable.\r\nThe maximum number of iteration can also be\r\nspecified. Data generated by the methods\r\ncan be displayed and analyzed.\r\n\r\nThere are a total of 6 methods avaialbe,\r\nfalse postion, bisection, brent, newton,\r\nnewton-steffenson, scant.\r\n\r\nMethods which have exceded the maximum\r\namount of iterations are discarded and\r\nnot displayed.\r\n\r\n\r\nTODO\r\n====\r\n\r\n * Implement Save As for plot data viewer in\r\n the format of CVS\r\n * Error highlighting when an invalid function\r\n is inputed.\r\n\r\nDirectory Structure\r\n===================\r\n\r\n\r\nThe following section outlines the directory\r\nstructure of the PyMois package. The entire\r\napplications code is divided into directories\r\ncontaining code that has similar functionality.\r\n\r\n/\r\n-\r\n\r\nAll application launchers are located in the root\r\ndirectory of the package. \r\ncalc\r\n----\r\n\r\nAll algorithms and mathematical methods used\r\nin all programs are located here. Every application\r\nhas a single module in this directory. For example\r\nif we have the integral_app.py application it will\r\nhave a integra.py module in this directory.\r\n\r\ngui\r\n---\r\n\r\nWithing the gui directory are located all the\r\npython files created from QT UI format. These\r\nfiles should not be edited since they are replaced\r\nevery time the UI files are update. \r\n\r\ngui/ui\r\n______\r\n\r\nFiles created by QT Designer are located in this\r\ndirectory. Any modification to the GUI should\r\nbe done using theses file in QT Designer. The\r\npython files generated from theses files should\r\nnot be edited.\r\n\r\nmatlib\r\n------\r\n\r\nThe matlib directory contains code related to\r\nthe matplotlib library used for creating plots\r\nand visualizing numerical data. All programs\r\nuse the plot widget located in this directory.\r\nThe plot widget is very easy to create and\r\nminimizes the amount of code needed to embed\r\na plot within a QT application.\r\n\r\nutils\r\n----\r\n\r\nCode which is shared between applications.\r\n\r\n\r\nNaming Convention\r\n=================\r\n\r\nAll files adhear to naming convention which \r\nenables quick identification of which files\r\nbelong to which application. There are\r\na couple of prefixes and suffixes used.\r\n\r\nFor example if we had an application called\r\nIntegrator we would uss the following naming\r\nconvetion.\r\n\r\n\r\nIf a gui was created using QT Designer it\r\nname should be integrator_app.ui and should\r\nbe stored in gui/ui. The generated python\r\ncode from that UI file will be located\r\nin gui/ and will be named(if make is used\r\nto generate the code) ui_integrator_app.py .\r\n\r\nNext the main application code used to start\r\nand customize the GUI should be calle d\r\nintegrator_app.py. The file should\r\nbe located in the root of the package.\r\n\r\nIf any calculation need to be done, the code\r\nshould be locaded in calc and have a name like\r\nso integrator.py.\r\n\r\nDependencies\r\n============\r\n\r\nThe entire PyMois packages depends on \r\na couple of key libraries. These need to\r\nbe installed in order for the applications\r\nto work. All mathematical calculations use\r\nthe PyGSL and NumPy packages. The interface\r\nand plotting relies on QT, PyQT and MatPlotLib.\r\n\r\nQT\r\n--\r\nDescription: Cross-platform GUI Toolkit\r\nVersion: 4.5\r\nURL: http://www.qtsoftware.com/products/\r\n\r\nPyGSL\r\n-----\r\nDescription: GNU GSL Python Binding\r\nVersion: 0.9.4\r\nURL: http://pygsl.sourceforge.net/\r\n\r\n\r\nPyQT\r\n----\r\nDescription: Python QT4 Bindings\r\nVersion: 4.4.3\r\nURL: http://www.riverbankcomputing.co.uk/software/pyqt/download\r\n\r\nSIP\r\n---\r\nDescription: Python extension module generator for C and C++ libraries(needed by\r\nPyQT)\r\nVersion: 4.7.7\r\nURL: http://www.riverbankcomputing.co.uk/software/sip/download\r\n\r\nMatPlotLib\r\n----------\r\nDescription: Python 2D plotting library\r\nVersion: 0.98.5.3\r\nURL: http://matplotlib.sourceforge.net/\r\n\r\nNumPy\r\n-----\r\nDescription: Python Numerical Library\r\nVersion: 1.2.0\r\nURL: http://numpy.scipy.org/", "description_content_type": null, "docs_url": null, "download_url": "ftp://ftp.qtzlabs.com/dev/PyMois/PyMois-0.1.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.qtzlabs.com", "keywords": "gsl,pygsl,interpolation,integration,integrals,approximation,pymois,", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "PyMois", "package_url": "https://pypi.org/project/PyMois/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/PyMois/", "project_urls": { "Download": "ftp://ftp.qtzlabs.com/dev/PyMois/PyMois-0.1.tar.gz", "Homepage": "http://www.qtzlabs.com" }, "release_url": "https://pypi.org/project/PyMois/0.1/", "requires_dist": null, "requires_python": null, "summary": "Applications for interactive visualization of numerical methods.", "version": "0.1" }, "last_serial": 802640, "releases": { "0.1": [] }, "urls": [] }