Revision c0cc48c3328d0a7ea990cf43c01fb3b08c0b0c24 authored by Marios Papachristou on 17 July 2020, 07:44:29 UTC, committed by GitHub on 17 July 2020, 07:44:29 UTC
* Initialize report * Add solvers file * WIP: Add Euler ODE Solver * WIP: Add Euler Method * Add boundary reflections to Euler * Fix boundary reflections * Add test for ODE dx/dt = -x for Euler Method * Add test for dx/dt = x in [0, 1] * Add is_in for multiple reflections * Add normalize flag to get_direction * Minor modifications * WIP: Add HMC for log-concave densities * Add tests for HMC * Add details to README * Add tests for leapfrog method * Add leapfrog method * Add HMC and HMC tests * Separate Euler and Leapfrog * Remove ode_solvers.h * Refactor solver implementations 1. Move solvers to separate file 2. Fix includes. The ode_solvers.h base file includes the rest of the solvers and is respon- sible for doing the correct includes. * Add RK methods header file * WIP: Add generic RK methods * Implement RK methods with testing * Add collocation method header files * Fix bug in RK methods * WIP: Collocation method constructors * WIP: Implement collocation method * Add root_finders header file * Add CHECK() statements and fix minor bugs * Bug fix for boundary oracle * Add CHEK() for constrained leapfrog * Add Newton-Raphson method for root finding * Add return statement * Add notice * Add regularization (smoothing) and max_iters * Add const where needed * Add BS method * Add Bulirsch-Stoer implementation * Add Bulirsch-Stoer implementation * Add constrained BS method * WIP: Debug collocation method * WIP: Debug collocation method * Add rational fcn and grad of rational fcn functors * WIP: Add testcase for collocation methods * Fix BS method * Minor changes * Add resources to ODE solvers * Initialize curve_intersect for Hpoly * WIP: Boundary oracles * WIP: Boundary oracles * WIP: Boundary oracles * WIP: Boundary oracles * WIP: Boundary oracles * WIP: Add isinf for well-posedness of denominator in NR * Move func template one level above (for ULD to work later) * Initialize boundary oracles test * Add boundary oracle test CMake targets * Initialize boundary oracles tests * Working boundary oracle for H-polytope 1. Uses Newton-Raphson for solving transcendental equations 2. Can find multiple/one root 3. Tests are implemented for the curves (t, t) and (t, 2t^2) * Initialize NLP oracles (general curve w/ polytope) * Finish boundary oracle tests for H-polytope * Add ifopt and ipopt to CMakeLists.txt * Add wrapper function for nlp oracles * Working nlp H-polyoracle * Rename nlp polyoracles to avoid confusion with lp oracles * Remove old polyoracles file * Document NLP hpolyoracles * Minor refactoring * Add wrapper function * WIP: Initialize NLP oracle for V-polytope * Update readme with GSoC information * Add benchmarks with random polynomials * Modify membership condition * Restrain test to t only * Bug fixes * Code cleanup * Move to old commit (before merge) * Merge ode solvers * Rename testcases * Merge root finders test * Move hmc to sampling/ directory * Partial fix for V polyoracles with ipopt * Fix linear collocation method * Fix collocation with approximate computation * Improve README file * Add precomputation flag * Improve NR solver * Add central method for curve_intersect * Change return type of nlp vpolyoracle to return dummy facet * WIP: Integrate boundary oracles to collocation * Fix collocation method boundary oracles (w/ tests) * Bug fixes * Add mpsolve and gmp to CMakeLists.txt * Implement mpsolve wrapper * WIP: Integrate mpsolve * Fix preprocessor directives * Add boundary oracle with mpsolve * Fix minor issues * Fix existing working tests * Add min_pos optimization problem * WIP: Minor changes in way of reflection * Remove hmc sampler temporarily (move it to temp branch) * Fix reflections * Add dependencies(mpsolve, ipopt/ifopt) to CircleCI * Fix config * Fix config * Fix config * Add dependency at circleci config * Add dependency at circleci config * Add dependency at circleci config * Add dependency at circleci config * Add dependency at circleci config * Add root finders test * Minor fixes in boundary oracles * Fix bounded collocation * Typo fix * Add missing test to cmakelists * Add #undef where it is needed * Remove extraneous dynamic linking * Fix erroneous flag * Remove hmc tests (moved to other branch) * Update clang and g++ workflows * Fix failing R tests * Fix failing R tests * Split checking for ubuntu/macOS * Remove misplaced if statement * Add CMAKE_CXX_COMPILER flag to ifopt * Correct test name * Remove sudo in front of brew cmd * Add automake dependency * Change error_on from "warning" to "error" * Add preprocessor directive to disable NLP oracles * Add flag for disabling oracles * Add macro definitions for disabling oracles * Add windows workflow * Modify windows workflow * Change Makevars.win * Change Makevars.win * Change Makevars.win * Disable NLP oracles to all tests * Modify circleci build * Modify circleci build * Add preprocessor directive * Remove report * Remove GSoC details * Move macro * Remove unused typedefs * Modify copyright notices * Fix typo * Rename rk.h to runge_kutta.hpp * Minor correction * Rename .h to .hpp in ODE solvers * Rename nlp oracles from .h to .hpp * Rename root finders * Remove duplicate include * Reorder #include directives * Refactoring * Rename file * Add velocity reflections * Remove extraneous constructors * Add general docs for solvers * Temp refactoring * Fix minor bugs * Remove flag from richardson implementation * Add facet ignore * Finish oracles refactoring * Consistent copyright notices * Add accidentally removed templates * Consistent copyright notices * Add nlp_oracles.hpp main header file * Minor modifications * Change variable name from oracle to intersection_oracle * Remove unused file * Add higher-order reflections * Add missing ignore_facet * Wrap long lines * Remove print statement * Impose sticky boundary conditions for collocation * Impose sticky boundary conditions for collocation * WIP: Add integral collocation method class prototype * Delete integral_collocation.hpp * Modifications to collocation method * Iteratively solve non-linear equations * Fix bugs * Minor modifications to test routines * Optimize function oracles * Comment for future work * Minor changes * Remove comments from yaml * Restore README * Restore README
1 parent 21c6bf5
README.md
**VolEsti** is a `C++` library for volume approximation and sampling of convex bodies (*e.g.* polytopes) with an `R` and limited `python` interface. **VolEsti** is part of the [GeomScale](https://geomscale.github.io) project.
[![CRAN status](https://www.r-pkg.org/badges/version/volesti)](https://cran.r-project.org/package=volesti)
[![CRAN downloads](https://cranlogs.r-pkg.org/badges/volesti)](https://cran.r-project.org/package=volesti)
![CRAN/METACRAN](https://img.shields.io/cran/l/volesti)
[![Chat](https://badges.gitter.im/boostorg/geometry.png)](https://gitter.im/GeomScale/community?utm_source=share-link&utm_medium=link&utm_campaign=share-link)
### Test results
[![CRAN check](https://cranchecks.info/badges/worst/volesti)](https://cran.r-project.org/web/checks/check_results_volesti.html)
[![CircleCI master](https://circleci.com/gh/GeomScale/volume_approximation/tree/master.svg?style=shield)](https://circleci.com/gh/GeomScale/volume_approximation/tree/master)
[![CircleCI develop](https://circleci.com/gh/GeomScale/volume_approximation/tree/develop.svg?style=shield)](https://circleci.com/gh/GeomScale/volume_approximation/tree/develop)
[![gcc-test](https://github.com/GeomScale/volume_approximation/workflows/gcc-test/badge.svg)](https://github.com/GeomScale/volume_approximation/actions?query=workflow%3Agcc-test)
[![clang-test](https://github.com/GeomScale/volume_approximation/workflows/clang-test/badge.svg)](https://github.com/GeomScale/volume_approximation/actions?query=workflow%3Aclang-test)
[![R-CMD-check](https://github.com/GeomScale/volume_approximation/workflows/R-CMD-check/badge.svg)](https://github.com/GeomScale/volume_approximation/actions?query=workflow%3AR-CMD-check)
### Documentation
* [Using the R Interface](doc/r_interface.md)
* [Using the C++ Interface](doc/cpp_interface.md)
* [Using the Python Interface](volestipy/README.md)
* [Wikipage with Tutorials and Demos](https://github.com/GeomScale/volume_approximation/wiki)
* [Tutorial given to PyData meetup](https://vissarion.github.io/tutorials/volesti_tutorial_pydata.html)
* [Contributing](CONTRIBUTING.md)
### Credits
* [Contributors and Package History](doc/credits.md)
* [List of Publications](doc/publications.md)
Copyright (c) 2012-2020 Vissarion Fisikopoulos
Copyright (c) 2018-2020 Apostolos Chalkis
You may redistribute or modify the software under the GNU Lesser General Public License as published by Free Software Foundation, either version 3 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.
Computing file changes ...