{ "info": { "author": "Alex Gorodetsky", "author_email": "alex@alexgorodetsky.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: C", "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Topic :: Scientific/Engineering :: Mathematics" ], "description": "# Compressed Continuous Computation (C3)\n> Computing with functions\n\nThe Compressed Continuous Computation (C3) package is intended to make it easy to perform continuous linear and multilinear algebra with multidimensional functions. It works by representing multidimensional functions in a low-rank format. Common tasks include taking \"matrix\" decompositions of vector- or matrix-valued functions, adding or multiplying functions together, integrating multidimensional functions, and much much more. The following is a sampling of capabilities\n* Adaptive approximation of a black-box model (specified as a function pointer)\n* Regression of a model from data\n* Both linear and nonlinear approximation \n* Approximation in polynomial, piecewise polynomial, linear element, and radial basis function spaces\n* General adaptive integration schemes \n* Differentiation\n* Multiplication \n* Addition\n* Rounding \n* Computing Jacobians and Hessians\n* UQ\n 1) Expectation and variance\n 2) Sobol sensitivities\n\nIn addition to the above capabilities, which are unique to the C3 package, I also have general optimization routines including\n* BFGS\n* LBFGS\n* Gradient descent\n* Stochastic Gradient with ADAM \n\n\nDocumentation of most functions is provided by Doxygen here: \nhttp://alexgorodetsky.com/c3doc/html/\n\n### Installation / Getting started\n\nThe dependencies for this code are\n 1) BLAS\n 2) LAPACK\n 3) SWIG (if building non-C interfaces)\n 4) CMake\n\nUsually, these dependencies cnan be installed via the package manager of your system (apt or brew or port)\n\n## From Source\n```shell\ngit clone https://github.com/goroda/Compressed-Continuous-Computation.git c3\ncd c3\nmkdir build\ncd build\ncmake ..\nmake\n```\n\nThis will install all shared libraries into c3/build/src. The main shared library is libc3, the rest are all submodules. To install to a particular location use\n\n``` shell\ncmake .. -DCMAKE_INSTALL_PREFIX=/your/choice\nmake install\n```\n\n## Python interface\n\nYou can install the python interface using the pip utility through\n\n``` shell\npip install pathlib\npip install c3py\n```\n\nOne can obtain some examples in the pyexamples subdirectory\n``` shell\npython pywrappers/pytest.py\n```\n\nAn alternative way to install it is to download the git repository and then run\n\n``` shell\npython setup.py build\npython setup.py install\n```\n\nOne workflow that works well is to install this package in a new virtual environment. For instance using conda one can run the following (from the c3 directory)\n\n``` shell\nconda create -n c3pyenv python=3.7\nconda activate c3pyenv\npip install numpy\npython setup.py build\npython setup.py install\n```\n\n## Configuration Options\n\n#### BUILD_STATIC_LIB\nDefault: `OFF'\n\nUsing this option can toggle whether or not static or shared libraries should be built.\n\n**Note: This option cannot be set to ON if building the python wrapper**\n\n#### BUILD_SUB_LIBS\nDefault: `OFF'\n\nUsing this option can toggle whether or not to build each sub-library into its own library\n\n#### BUILD_TESTS\nDefault: `OFF'\n\nUsing this option can toggle whether or not to build unit tests\n\n#### BUILD_EXAMPLES\nDefault: `OFF'\n\nUsing this option can toggle whether or not to compile exampels\n\n#### BUILD_PROFILING\nDefault: `OFF'\n\nUsing this option can toggle whether or not to compile the profiling executables\n\n#### BUILD_BENCHMARKS\nDefault: `OFF'\n\nUsing this option can toggle whether or not to compile the benchmarks tests\n\n#### BUILD_UTILITIES\nDefault: `OFF'\n\nUsing this option can toggle whether or not to compile the utilities\n\n\n## Systems I have tested on\n\n1) Mac OS X with clang version 8.0 \n2) Ubuntu with gcc version 5.0\n\n\n## Solutions to some possible problems\n\n### Error: Unable to find 'python.swg'\n\nOn Mac OS X, if SWIG is installed with macports using\n```shell\nsudo port install swig\n```\nthen the above error might occur. To remedy this error install the swig-python package\n```shell\nsudo port install swig-python\n```\n\n### (On Mac OS X) Error: stdio.h not found\n\nThis happens on some updated versions of Mac OS X. To solve this, the following StackOverflow thread seems to work\n\nhttps://stackoverflow.com/questions/52509602/cant-compile-c-program-on-a-mac-after-upgrade-to-mojave\n\n### Numpy errors\n\nSometimes you may see the following errors\n\n``` shell\n_frozen_importlib:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 216, got 192\n```\n\nor\n\n``` shell\nRuntimeError: The current Numpy installation ('/Users/alex/anaconda3/envs/pytorch/lib/python3.6/site-packages/numpy/__init__.py') fails to pass simple sanity checks. This can be caused for example by incorrect BLAS library being linked in, or by mixing package managers (pip, conda, apt, ...). Search closed numpy issues for similar problems.\n```\n\nOne way that I have found (https://stackoverflow.com/a/47975375) that seems to solve this is to upgrade numpy by running the following command. I am really not sure why this works ...\n\n``` shell\nsudo pip install numpy --upgrade --ignore-installed\n```\n\n## Coding practices\n\nI aim to document (with Doxygen) every function available to the user and provide a unit test. Furthermore, I won't push code to the master branch that has memory leaks. I am constantly looking for more suggestions for improving the robustness of the code if any issues are encountered. \n\n## Contributing\n\nPlease open a Github issue to ask a question, report a bug, or to request features.\nTo contribute, fork the repository and setup a branch.\n\nAuthor: [Alex A. Gorodetsky](https://www.alexgorodetsky.com) \nContact: [goroda@umich.edu](mailto:goroda@umich.edu) \nCopyright (c) 2014-2016, Massachusetts Institute of Technology \nCopyright (c) 2016-2017, Sandia National Laboratories \nCopyright (c) 2018, University of Michigan \nLicense: BSD\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/goroda/compressed-continuous-computation", "keywords": "highd-approximation machine-learning uncertainty-quantification tensors", "license": "", "maintainer": "", "maintainer_email": "", "name": "c3py", "package_url": "https://pypi.org/project/c3py/", "platform": "", "project_url": "https://pypi.org/project/c3py/", "project_urls": { "Homepage": "https://github.com/goroda/compressed-continuous-computation" }, "release_url": "https://pypi.org/project/c3py/0.0.5/", "requires_dist": [ "numpy", "pathlib" ], "requires_python": "", "summary": "Compressed Continuous Computation Library in Python", "version": "0.0.5" }, "last_serial": 5549837, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "c372d41a708fc1d858fab83d6968cef0", "sha256": "f46e1d29cc8f72b72939d09768e2820765ef4b2a0289c3dc438022d2e0fa4053" }, "downloads": -1, "filename": "c3py-0.0.1-cp36-cp36m-macosx_10_6_x86_64.whl", "has_sig": false, "md5_digest": "c372d41a708fc1d858fab83d6968cef0", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 18669096, "upload_time": "2019-07-08T22:18:58", "url": "https://files.pythonhosted.org/packages/d7/b1/3cc3c5c8fe47a7cdeed47f0379280f9534f61e5a5303603f9daa13a438ba/c3py-0.0.1-cp36-cp36m-macosx_10_6_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "f494ba7790874b51716cbe7dfca4a415", "sha256": "30659e6597a07b872a602623d29c2b9d0990756135e9b0646cdb72438d9be65b" }, "downloads": -1, "filename": "c3py-0.0.1-py3.6-macosx-10.6-x86_64.egg", "has_sig": false, "md5_digest": "f494ba7790874b51716cbe7dfca4a415", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 18677479, "upload_time": "2019-07-08T20:32:47", "url": "https://files.pythonhosted.org/packages/f7/5b/dc6cdcc87579f15387387844f044a48827779a4de398e7858af2c4ab1b4b/c3py-0.0.1-py3.6-macosx-10.6-x86_64.egg" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "44664ee21e12cc71108c05e62acdf95a", "sha256": "5ae9c0d2836c001d679aec4bb65cd0b19070df5800c6301edc7b74fc8f916eab" }, "downloads": -1, "filename": "c3py-0.0.2.tar.gz", "has_sig": false, "md5_digest": "44664ee21e12cc71108c05e62acdf95a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19113, "upload_time": "2019-07-08T22:27:36", "url": "https://files.pythonhosted.org/packages/91/e7/21d611d8c82c2ad968698cda5252dda7455729203b4650cb686c92c0c3d6/c3py-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "9f5c79a2451c221417c6ab2861ce33d8", "sha256": "eca7b00459d0357a9971a761973a0407eabd336098b875a16c1a95dda3c524a2" }, "downloads": -1, "filename": "c3py-0.0.3.tar.gz", "has_sig": false, "md5_digest": "9f5c79a2451c221417c6ab2861ce33d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18473, "upload_time": "2019-07-10T19:37:35", "url": "https://files.pythonhosted.org/packages/1c/87/04a4c8e006978f3fd31cae40567509479094fecbd3298efd68120d3d994a/c3py-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "2ef4743dc33f2a5d284e7d7df5fe74f3", "sha256": "542fe65fa706def8373e80e01e8084c678902f02f017619d31f243e4c0adeb33" }, "downloads": -1, "filename": "c3py-0.0.4-py3.6-macosx-10.6-x86_64.egg", "has_sig": false, "md5_digest": "2ef4743dc33f2a5d284e7d7df5fe74f3", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 18680182, "upload_time": "2019-07-13T20:54:17", "url": "https://files.pythonhosted.org/packages/ad/cf/5b0e4a5533a6ff8043f5f485f01b3a90a34e75c1e9bac469dd633b876f7a/c3py-0.0.4-py3.6-macosx-10.6-x86_64.egg" }, { "comment_text": "", "digests": { "md5": "83bc7449d4b523407aff91b1a347fad6", "sha256": "1530918cc614bda6bd606a249795949fea8048a8e6f3584a0fc907a003c99948" }, "downloads": -1, "filename": "c3py-0.0.4.tar.gz", "has_sig": false, "md5_digest": "83bc7449d4b523407aff91b1a347fad6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17187507, "upload_time": "2019-07-13T20:55:19", "url": "https://files.pythonhosted.org/packages/e8/39/59bc2a0a9d623a6c57e059ddc4a32b39bcb46af1773f8ca7269d8bd8c0a8/c3py-0.0.4.tar.gz" } ], "0.0.4.1": [ { "comment_text": "", "digests": { "md5": "69a1b4a277b2440860e276947699fad3", "sha256": "74f9252d654b56edcc52af76c96887d2f873fde6896696812fd3a63f786af99d" }, "downloads": -1, "filename": "c3py-0.0.4.1.tar.gz", "has_sig": false, "md5_digest": "69a1b4a277b2440860e276947699fad3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17189092, "upload_time": "2019-07-13T21:04:20", "url": "https://files.pythonhosted.org/packages/67/8a/3ae00db707b49635b76d78426372bc7f4e81639256bee8e98fd912060d71/c3py-0.0.4.1.tar.gz" } ], "0.0.4.2": [ { "comment_text": "", "digests": { "md5": "d984eb72fed9dc0bb8c304f1c8413138", "sha256": "81441ef1c7a08fc5d741cbe5a472f678de080bb09ed991dae4824dbe58892a81" }, "downloads": -1, "filename": "c3py-0.0.4.2.tar.gz", "has_sig": false, "md5_digest": "d984eb72fed9dc0bb8c304f1c8413138", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17181099, "upload_time": "2019-07-13T21:12:14", "url": "https://files.pythonhosted.org/packages/11/ea/62d0539e32cb618ca9892ab1404531cf6639ae773d370754e9d9a684389e/c3py-0.0.4.2.tar.gz" } ], "0.0.4.3": [ { "comment_text": "", "digests": { "md5": "e49c8255de9652dab98b46ec4547d7c7", "sha256": "aa256ab6fb3f762a59fd17cd1d4215c14bd7e0315361d2b9a3d149b35d42d802" }, "downloads": -1, "filename": "c3py-0.0.4.3.tar.gz", "has_sig": false, "md5_digest": "e49c8255de9652dab98b46ec4547d7c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17038224, "upload_time": "2019-07-13T21:26:58", "url": "https://files.pythonhosted.org/packages/84/3b/8bd8b3a67ca136c75923e308f91757ca6d9a7f7227c6120c3bbdf90c7f74/c3py-0.0.4.3.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "c4ed83cd4dc445c1c2d26944788f51f5", "sha256": "05bb13e093278e75126fdf2e04d2314e880eb655f983f364d2d0450fdc649156" }, "downloads": -1, "filename": "c3py-0.0.5.tar.gz", "has_sig": false, "md5_digest": "c4ed83cd4dc445c1c2d26944788f51f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16988343, "upload_time": "2019-07-18T08:47:48", "url": "https://files.pythonhosted.org/packages/bf/4b/4579f66f73b1d515b29040c650f362f9829dafdffac92acfba233b80f5da/c3py-0.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c4ed83cd4dc445c1c2d26944788f51f5", "sha256": "05bb13e093278e75126fdf2e04d2314e880eb655f983f364d2d0450fdc649156" }, "downloads": -1, "filename": "c3py-0.0.5.tar.gz", "has_sig": false, "md5_digest": "c4ed83cd4dc445c1c2d26944788f51f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16988343, "upload_time": "2019-07-18T08:47:48", "url": "https://files.pythonhosted.org/packages/bf/4b/4579f66f73b1d515b29040c650f362f9829dafdffac92acfba233b80f5da/c3py-0.0.5.tar.gz" } ] }